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