Если вы собираетесь зацикливаться на элементах своего «списка», вам лучше использовать генератор, а не понимание списка:
>>> text = "I'm a little teapot."
>>> textgen = (text[:i + 1] for i in xrange(len(text)))
>>> textgen
<generator object <genexpr> at 0x0119BDA0>
>>> for item in textgen:
... if re.search("t$", item):
... print item
I'm a lit
I'm a litt
I'm a little t
I'm a little teapot
>>>
Этот код никогда не создает объект списка, а также (дельта-сборщик мусора) не создает более одной дополнительной строки (в дополнение к text
).