Python any () + expresión generadora

De acuerdo con la publicación del blogaquí, una expresión de generador any () + debería ejecutarse más rápido que un bucle for, y parece que su razonamiento tiene sentido.

Pero he tratado de usar este método (aunque en alguna otra función), pero parece que toma más tiempo ejecutarlo que un ciclo for explícito.

def with_loop(a, b):
    for x in xrange(1, b):
        if x * a % b == 1: return True
    return False

def with_generator(a, b):
    return any(x * a % b == 1 for x in xrange(1, b))

Básicamente, el código recorre todos los números del 1 alb para saber si el númeroa Tiene una inversa modular.

Los tiempos que obtuve al ejecutar las funciones son:

>>> from timeit import Timer as T
>>> T(lambda : with_generator(100, 300)).repeat(number = 100000)
[3.4041796334919923, 3.6303230626526215, 3.6714475531563266]
>>> T(lambda : with_loop(100, 300)).repeat(number = 100000)
[2.1977450660490376, 2.2083902291327604, 2.1905292602997406]
>>> T(lambda : with_generator(101, 300)).repeat(number = 100000)
[1.213779524696747, 1.2228346702509043, 1.2216941170634072]
>>> T(lambda : with_loop(101, 300)).repeat(number = 100000)
[0.7431202233722161, 0.7444361146951906, 0.7525384471628058]

with_generator (100,300) devuelve False y with_generator (101,300) devuelve True.

Parece que with_generator siempre tarda más tiempo en ejecutarse que with_loop. Hay alguna razón para esto?

EDITAR: ¿Hay alguna otra forma más corta o más elegante de reescribir with_loop para lograr un rendimiento similar o mejor? ¡Gracias!