def iter_range(self, time_tuple, (first, last, step)):
        time_tuple = list(time_tuple)

        while True:
            if not is_valid_time_tuple(time_tuple):
                break

            weekday = (calendar.weekday(*time_tuple[:3]) + 1) % 7
            if weekday > last:
                time_tuple[2] += 7 - weekday
                time_tuple[3:] = min_time_tuple[3:]
                continue

            if weekday < first:
                time_tuple[2] += first - weekday
                time_tuple[3:] = min_time_tuple[3:]
                continue

            yield normalized_time_tuple(time_tuple)

            time_tuple[2] += 1
            time_tuple[3:] = min_time_tuple[3:]
dataset/ETHPy150Open abusesa/abusehelper/abusehelper/core/cron.py/_WeekdayUnit.iter_range/original