@DKKA: Vielleicht verrätst Du mal was Du *eigentlich* vorhast. Denn bei diesen beiden kleinen Listen ist es vom Speicherverbrauch wahrscheinlich Wurst ob man da nun zwei Listen mit jeweils drei Elementen hat, oder eine Generatorfunktion erstellt, die ja auch Speicher belegt für den Zustand und so.
Wenn Du die Werte nicht generieren kannst, es also keine Vorschrift gibt sie effizient aufzuzählen wie zum Beispiel `xrange()` für aufsteigende Zahlen, dann musst Du sie im Speicher halten. Also Arbeitsspeicher oder langsamerer Hintergrundspeicher. Bei den verschachtelten Schleifen kommt noch hinzu das eine Wertefolge immer wieder durchgegangen werden muss, also die Werte für jeden Wert der anderen Folge aufgezählt, erzeugt, eingelesen, oder was auch immer werden müssen.
Wenn diese beiden Ausgangsfolgen den Arbeitsspeicher zu sprengen drohen stellt sich aber auch die Frage was Du eigentlich mit den generierten Werten von dem Generatorausdruck machen willst, denn die wirst Du dann niemals alle aufgezählt bekommen. Nicht in diesem Jahrhundert jedenfalls.
Vielleicht haben wir hier auch ein XY-Problem.