The problem is that it's bad style to write (in Python 2.x):
for i in range(n):
# your code here
because it potentially allocates a
lot of memory for no reason whatsoever. It's the equivalent of this C code:
int* r = calloc(sizeof(int), n);
for (int j = 0; j < n; j++) r[j] = j;
for (int j = 0; j < n; j++) {
int i = r[j];
// your code here
}
free(r);
If you don't want to deal with the distinction then what you
can do is just treat range() as deprecated and always use either xrange() or list(xrange()) depending on the situation. But you had probably ought to know about the issue.