Вызов list(cycle([1,2,3]))
эквивалентен
lst = []
for x in cycle([1,2,3]):
lst.append(x)
l oop никогда не завершается, потому что у cycle
объекта всегда есть следующий элемент для выдачи, поэтому lst
растет бесконечно, останавливаясь только тогда, когда вашей машине не хватает памяти для выделения в списке.