Разница между range() и xrange() в Python заключается в том, что они возвращают разные объекты. 23
range() возвращает список, который содержит всю последовательность чисел сразу. 1 Если диапазон достаточно большой, range() может занять много памяти. 1
xrange() создаёт объект, который генерирует каждое число в последовательности по требованию, то есть по мере итерации. 1 Это называется «ленивой» генерацией, и она более эффективна по памяти, особенно для больших диапазонов. 1
Кроме того, xrange() используется только в Python 2.x, тогда как range() доступна и в Python 2, и в Python 3. 23