Wie kann ich mit Common Lisp alle möglichen Permutationen einer Liste erhalten?

Ich versuche eine Common-Lisp-Funktion zu schreiben, die mir alle möglichen Permutationen einer Liste gibt, wobei jedes Element nur einmal verwendet wird. Zum Beispiel ergibt die Liste '(1 2 3) die Ausgabe ((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 2) (3 2 1)).

Ich habe schon etwas geschrieben, das funktioniert, aber es ist klobig, es funktioniert nicht immer und ich verstehe es nicht einmal wirklich. Ich frage nicht nach Code, sondern nur nach einer Anleitung, wie ich darüber nachdenken soll. Ich weiß nicht viel über das Schreiben von Algorithmen.

Danke, Jason

Antworten auf die Frage(4)

Ihre Antwort auf die Frage