Python verschmilzt zwei Listen mit allen möglichen Permutationen

Ich versuche, den besten Weg zu finden, um zwei Listen in alle möglichen Kombinationen zusammenzuführen. Also, wenn ich mit zwei Listen wie dieser beginne:

list1 = [1, 2]
list2 = [3, 4]

Die resultierende Liste sieht folgendermaßen aus:

[[[1,3], [2,4]], [[1,4], [2,3]]]

Das heißt, es wird im Grunde eine Liste von Listen mit allen möglichen Kombinationen zwischen den beiden erstellt.

Ich habe Itertools durchgearbeitet. Ich bin mir ziemlich sicher, dass dies die Antwort ist, aber ich kann mir keine Möglichkeit einfallen lassen, es so zu machen. Am nächsten kam ich:

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
print list(itertools.product(list1, list2))

Welche produziert:

[(1, 5), (1, 6), (1, 7), (1, 8), (2, 5), (2, 6), (2, 7), (2, 8), (3, 5), (3, 6), (3, 7), (3, 8), (4, 5), (4, 6), (4, 7), (4, 8)]

So werden alle möglichen Kombinationen von Elementen in jeder Liste ausgeführt, jedoch nicht alle möglichen Ergebnislisten. Wie kann ich das erreichen?

EDIT: Das Endziel ist es, jede Liste einzeln zu verarbeiten, um die Effizienz zu bestimmen (die tatsächlichen Daten, mit denen ich arbeite, sind komplexer). Im obigen ursprünglichen Beispiel würde es also ungefähr so funktionieren:

list1 = [1, 2]
list2 = [3, 4]

Get first merged list: [[1,3], [2, 4]]
    Do stuff with this list
Get second merged list: [[1,4], [2, 3]]
    Do stuff with this list

Wenn ich die oben beschriebene Ausgabe "list of lists of lists" bekomme, kann ich sie in eine for-Schleife einfügen und weiter verarbeiten. Andere Ausgabeformen würden funktionieren, aber es scheint am einfachsten zu sein, mit ihnen zu arbeiten.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage