Listar compreensões em Python com estado mutável entre iterações

Eu tenho algo que é muito parecido com uma compreensão de lista em Python, exceto que ele compartilha um estado mutável entre as iterações. Existe alguma maneira de fazer isso com uma compreensão de lista?

def f(x):
    """ 5-bit LFSR """
    return (x >> 1) ^ (0x12*(x&1))

def batch(f, x, n):
    result = [x]
    for _ in xrange(1,n):
        x = f(x)
        result.append(x)
    return result

batch(f, 1, 5)

que retorna[1, 18, 9, 22, 11]. Aqui o importante é abatch função, nãof(x) que é aqui apenas um exemplo simples para ilustrar o problema.

Alternativamente, eu poderia implementar usando um gerador:

def batch(f, x, n):
    yield x
    for _ in xrange(1,n):
        x = f(x)
        yield x

list(batch(f, 1, 5))

Mas cheira um pouco estranho. O que estou procurando é algo assim ...

batch = [??? for _ in xrange(n)]

questionAnswers(3)

yourAnswerToTheQuestion