Используйте функцию генератора для генерации итератора.
def foo_gen():
n = 0
while True:
n+=1
yield n
Тогда использование это как
foo = foo_gen().next
for i in range(0,10):
print foo()
, Если Вы хотите верхний предел:
def foo_gen(limit=100000):
n = 0
while n < limit:
n+=1
yield n
, Если итератор завершается (как пример выше), можно также циклично выполниться по нему непосредственно, как
for i in foo_gen(20):
print i
, Конечно, в этих простых случаях, лучше использовать xrange:)
Вот документация относительно оператор .
урожая