Comment Comment by peterhull90 You can put an extra 'level' in, to make both options return the same 0,1...9 def loop(): for number in range(10): def outer(n): def inner(): return n return inner yield outer(number) Is there a neater way? parent peterhull90 2 years ago