Ya te han dado una respuesta , pero voy a aprovechar este tema para comentar algunos puntos:
1) Estás generando una lista y después comparando uno a uno si es par o no.
Imaginate si por casualidad el segundo término es : 3587946521 porque el planteo dice números pero no específica los límites.
Se va a demorar un poco en hacer los cálculos, ni hablar si es mayor.
2) Además generás la lista de una sola vez, con todos los recursos que eso implica, y solo para tomar 3 números
bueno, con un poco de lógica y con python, es posible mejorar el funcionamiento, que repito no es necesario si usas 3 y 20 por ejemplo, aunque igual ya ocupan memoria.
creo la función y le paso los rangos solo hago la comparción con el límite inferior ya que la lsita será a partir de ahí y en un salto de 2.
o sea, si n = 3 la lista será entre n y m de a dos: 3,5,7, etc. ya son todos impares ¿para qué comparar?
Bueno si es n = 8 por ejemplo, le sumo 1 y por ende ya es impar.
Para los que buscan aprender, yield es un generador, pero no almacena la lsita completa sino que guarda de a un valor por así decirlo
Con esto no hago más que una comparación y un elemento
por último creo la función que devuelva lo que busco, donde le paso como parámetro el valor por defecto de los números que quiero ver. Si lo modifico al llamar la función , veré lo que necesito, 4 ,10,100 etc.
Finalmente con el for en el rango del contador, en este caso 3 voy creando cada número.
La diferencia la verán si modifican el valor de m con respecto a los códigos anteriores.por ejemplo m =35897451 que es un número pequeño y posible.
Como dije, esto es solo para quienes ya conocen python y quieren mejorar la lógica en cuanto a funcionamiento y no sintáxis.