Ich möchte Permutationen der Zahlen (1,2), (1,2,3), … rekursiv ausgeben.
Über YouTube (https://www.youtube.com/watch?v=XQ46IEOxaGc) habe ich eine Lösung nachprogrammiert:
Code: Alles auswählen
def permutationen(liste):
    if len(liste) <= 1:
        return [liste]
    else:
        return [[liste[i]] + P for i in range(len(liste)) for P in permutationen(liste[:i] + liste[i+1:])]
print(permutationen([1,2]))
Danach wollte ich es für Anfänger etwas verständlicher programmieren:
Code: Alles auswählen
def permutationen1(liste):
    if len(liste) <= 1:
        return [liste]
    else:
        for i in range(len(liste)):
            for P in permutationen1(liste[:i] + liste[i+1:]):
                return [[liste[i]] + P]
print(permutationen1([1,2]))
Ich sehe leider den Fehler nicht, bzw. den Unterschied zur ersten Version.
Vielen Dank im Voraus!



