"""
6. Реализовать два небольших скрипта:

а) итератор, генерирующий целые числа, начиная с указанного,
б) итератор, повторяющий элементы некоторого списка, определенного заранее.

Подсказка: использовать функцию count() и cycle() модуля itertools. Обратите внимание, что создаваемый цикл не должен
быть бесконечным. Необходимо предусмотреть условие его завершения.

Например, в первом задании выводим целые числа, начиная с 3, а при достижении числа 10 завершаем цикл. Во втором
также необходимо предусмотреть условие, при котором повторение элементов списка будет прекращено. """

from itertools import count, cycle


def count_func(start, stop):
    for idx in count(start):
        if idx <= stop:
            print(idx)
        else:
            break


user_list = [1, 3, 55, 324, 332, 66, 90, 22]


def cycle_func(func_list, end_pos):
    counter = 0

    for idx in cycle(func_list):
        if counter < end_pos:
            print(idx)
            counter += 1
        else:
            break


cycle_func(user_list, 5)
