Generieren Sie alle möglichen Zeichenfolgen aus einer Liste von token
Habe ich eine Liste von tokens, wie:
hel
lo
bye
und ich will generieren alle möglichen Kombinationen von solchen Zeichenfolgen wie:
hello
lohel
helbye
byehel
lobye
byelo
Sprache ist nicht wichtig, irgendwelche Ratschläge?
Fand ich Erzeugung von Permutationen mit bash, aber das macht die permutation, die auf einer einzelnen Zeile.
- LucaB, ich glaube nicht, dass "Hallo" ist eine permutation von "hel", "lo", "bye" im normalen Verständnis von "permutation". Insbesondere eine permutation des Satzes nicht weglassen Mitglieder der Gruppe. So Beantworter haben zu wählen zwischen dem, was Sie explizit danach gefragt, und die Probe-Ausgabe, die Sie zeigen. Wahrscheinlich "Kombinationen" ist, was Sie bedeutete, wie @Sven wies.
- Du hast Recht, ich meinte Kombinationen. Ich werde aktualisieren, meine Frage.
- nur an link, die hier für Menschen auf der Suche für ALLE Kombinationen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deinem Beispiel kann geschrieben werden in Python als
Kombinieren der Ausgabe zu strings wieder:
Wenn Sie Interesse an der Umsetzung dieser Funktion, haben Sie einen Blick auf die Dokumentation.
itertools.Permutationen
kann das für Sie tun.Oder möchten Sie Kombinationen, die Sie verwenden können,
itertools.Kombinationen
.Da in anderen Sprachen sind zulässig:
Python hat eine Permutationen zu. 🙂
Einfach in python mit itertools.
Ist hier der token-permutation Beispiel:
Alternativ kann diese behandelt jedes Zeichen als ein Zeichen:
Sieht aus wie Sie wollen
permutations
:Ausgabe:
Update: ich sehe, ich war nicht griffig genug.
Haskell hat eine Permutationen Funktion, die helfen würde:
Wenn Sie möchten, dass jede permutation verkettet, verwenden Sie
Wenn Sie wirklich wollen, Kombinationen von zwei Teilfolgen (wie Ihr Beispiel-Ausgabe), statt alle Permutationen der Teilzeichenfolgen ist, werden als @Sven merkte, verwenden Sie die Mathematik.Die Kombinatorik.Diagramm-Modul und:
Passt beispielsweise Daten in einigen Punkten, in anderen aber nicht. Ich könnte jetzt spekulieren, dass "alle möglichen Zeichenfolgen", wie der Titel sagt, oder alle Permutationen von zwei-token Teilmengen, oder was haben Sie, aber es ist irgendwie sinnlos darüber zu spekulieren, da hast du bereits eine Antwort.