xrange([start,] stop[, step])
This function is very similar to range, but returns an
object instead of a list. This is an opaque sequence type which
yields the same values as the corresponding list, without actually
storing them all simultaneously. The advantage of xrange over
range is minimal (since xrange still has to create the values when
asked for them) except when a very large range is used on a
memory-starved machine or when all of the range’s elements are never
used (such as when the loop is usually terminated with break).
Note: xrange is intended to be simple and fast. Implementations may impose restrictions to achieve this. The C implementation of Python restricts all arguments to native C longs (“short” Python integers), and also requires that the number of elements fit in a native C long.