Чтобы составить "истинную" круглую пару чисел, вы должны включить некоторые itertools
:
from itertools import cycle, islice, izip
circ_list = izip(cycle(nums), islice(cycle(nums), 1, None))
Это бесконечный итератор, который будет продолжать давать виды чисел пары, которые вы хотите.
cycle(nums)
будет бесконечно повторять ваш список чисел, islice(..., 1, None)
пропускает первый его элемент, поэтому у вас, по сути, есть [0, 1, 2, ...]
и [1, 2, 3, ...]
, которые izip
объединяет.
Теперь вы можете, например, взять небольшой кусочек:
>>> list(islice(circ_list, 5))
[(0, 1), (1, 2), (2, 3), (3, 0), (0, 1)]