range объекты не являются итераторами

range является итеративным, мы можем получить итератор из него:

iter(range(3)) # <range_iterator object at 0x7f043a0a7f90>

Но сами объекты range не являются итераторами. Мы не можем вызвать next для объекта range:

next(range(3))

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'range' object is not an iterator

И в отличие от итератора, мы можем перебрать объект range сколько угодно

numbers = range(3)
tuple(numbers) # (0, 1, 2)
tuple(numbers) # (0, 1, 2)

В отличие от объектов zipenumerate или generator объекты range не являются итераторами.