The xrange() function has exactly the same
arguments as the range() function (see Section 20.33, “range(): Generate an arithmetic
progression as a list”).
The difference is that xrange() is a generator
(see Section 24.3, “Generators: Functions that can produce a sequence of
values”), while range() actually builds a list for its result. This
means you can use xrange() in situations where
you want to generate a large series of the values from an
arithmetic progression, but you don't have enough memory to
build that series as a list.
>>> for i in xrange(2000000000): ... print i, ... if i > 8: ... break ... 0 1 2 3 4 5 6 7 8 9 >>> for i in range(2000000000): ... print i, ... if i > 8: ... break ... Traceback (most recent call last): File "<stdin>", line 1, in <module> MemoryError