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