Alle Anagramme eines WORTES bilden in Python?
Wie bilde ich in Python alle Anagramme eines Wortes? Mit Hilfe von Listen soll das gemacht werde. Vielleicht irgendwie die Index zahlen vertauschen und die schon abgehackten Wörter in einer anderen Liste speichern? Nur wie mache ich das?
2 Antworten
Sofern die Anagramme nicht sinnvoll sein müssen:
https://kite.com/python/answers/how-to-generate-all-permutations-of-a-list-in-python
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Mathematik, Python
Mit der permutations()-Funktion aus itertools erhält man einfach einen Iterator, welche alle Permutationen des Wortes durchgehen kann.
Der Iterator liefert für einen String jeweils Listen von Zeichen, wobei man die Zeichen beispielsweise mit ''.join(Liste) wieder zu einem String zusammensetzen kann.
Beispielcode:
from itertools import permutations
Wort = 'ABCD'
Anagramme = {''.join(p) for p in permutations('ABCD')}
print(Anagramme)
Dieser Beispielcode liefert dann als Ausgabe:
{'BCAD', 'CDAB', 'DBCA', 'CBAD', 'ABDC', 'ADCB', 'ACBD', 'BCDA', 'DCBA', 'DABC', 'BDAC', 'BDCA', 'DACB', 'ABCD', 'ACDB', 'CADB', 'CABD', 'CDBA', 'BADC', 'BACD', 'ADBC', 'DBAC', 'DCAB', 'CBDA'}