range() - Genera una secuencia de números en Python

La función range permite generar una cierta cantidad de números, por defecto, desde el 0. El funcionamiento básico es:

range(8) # Genera 8 números,desde 0 hasta el 8-1, sumando 1.
# 0,1,2,3,4,5,6,7

range(3,8) # Genera 8-3 números, desde el 3 hasta 8-1, sumando 1.
# 3,4,5,6,7

range(3,8,2) # Genera 8-3 números, desde el 3 hasta el 8-1, sumando 2.
# 3,5,7

En términos más técnicos la función range funciona así:

version1 = range(total)
version2 = range(inicio,final)
version3 = range(inicio,final,saltos)

La función range y print

Pasa algo interesante cuando imprimimos un rango directamente:

rango=range(2,9,2)
print=(rango)
   # Imprime: range(2,9,2)

Esto sucede porque python usa la Generación bajo demanda, que en términos simples significa que si no lo va a usar pues no lo calcula. El objeto si existe pero en ves de contener los valores generados, solo almacena en memoria la información para generar estos objetos. Cuando se requiera generar alguno, varios o todos hará el calculo y recién almacenará en momoria los números que requiera según la información de generación.