This is fairly neat. Doesn't require list size and the generator provides lazy evaluation, no itertools requirement also.
itertools
def cycle_through_list(lst): while True: yield from lst