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

Antworten auf die Frage(8)

Ihre Antwort auf die Frage