Python: Finde alle möglichen Wortkombinationen mit einer Folge von Zeichen (Wortsegmentierung)
Ich mache einige Wortsegmentierungsexperimente wie die folgenden.
lst
ist eine Folge von Zeichen undoutput
ist alle möglichen Wörter.
lst = ['a', 'b', 'c', 'd']
def foo(lst):
...
return output
output = [['a', 'b', 'c', 'd'],
['ab', 'c', 'd'],
['a', 'bc', 'd'],
['a', 'b', 'cd'],
['ab', 'cd'],
['abc', 'd'],
['a', 'bcd'],
['abcd']]
Ich habe @ überprücombinations
undpermutations
imitertools
Bibliothek
und versuchte auch combinatorics.
Es scheint jedoch, dass ich auf die falsche Seite schaue, weil dies keine reine Permutation und Kombination ist ...
Es scheint, dass ich dies durch die Verwendung vieler Schleifen erreichen kann, aber die Effizienz ist möglicherweise gering.
BEARBEITE
Die Wortreihenfolge ist wichtig, also Kombinationen wie['ba', 'dc']
oder['cd', 'ab']
sind nicht gültig.
Die Bestellung sollte immer @ sevon links nach rechts
BEARBEITE
ie Lösung von Stuart funktioniert in Python 2.7.6 nic
BEARBEITE
ie Lösung von Stuart funktioniert in Python 2.7.6 (siehe Kommentare unten