我正在做一些分詞實驗,如下所示。Python:找到所有可能的字符組合與字符序列(分詞)
lst
是一個字符序列,而output
是所有可能的單詞。
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']]
我在itertools
庫檢查combinations
和permutations
,
也試過combinatorics。
但是,似乎我看着錯誤的一面,因爲這不是純粹的置換和組合...
看來我可以通過使用大量循環來實現這一點,但效率可能很低。所以像['ba', 'dc']
或['cd', 'ab']
組合是無效的
編輯
詞序是很重要的。
從左至右的順序應始終爲。
編輯
@斯圖爾特的解決方案並不在Python 2.7.6工作
編輯
@斯圖爾特的解決方案確實在Python 2.7.6工作,請參見下面的評論。
請參閱我的代碼在Python 2.7.3中使用[here](http://ideone.com/ufVuEm)和Python 3.2.3中的[here](http://ideone.com/N4y9t7) – Stuart 2014-12-03 10:33:23