给定一个字符串,我想要生成所有可能的组合。换句话说,所有可能的方式都是在字符串的某个位置放置一个逗号。分隔字符串
例如:
input: ["abcd"]
output: ["abcd"]
["abc","d"]
["ab","cd"]
["ab","c","d"]
["a","bc","d"]
["a","b","cd"]
["a","bcd"]
["a","b","c","d"]
我停留在如何产生的所有可能的列表了一下。组合只会给我一个字符串集合子集的长度,排列会给出所有可能的排序方法。
我可以在列表中仅使用一个逗号作为遍历切片的所有情况,但我无法使用两个逗号分别为“ab”,“c”,“d”和“a” , “b”, “CD”
我尝试瓦特/片:
test="abcd"
for x in range(len(test)):
print test[:x],test[x:]
到迭代工具评议,哪一页?我正在浏览这个http://docs.python.org/2/library/itertools。html,但也许这是不正确的搜索通过 –
有2 ^(n-1)的可能性(你错过了[['a','bc','d']'在你的例子中),因为在每个点在字母之间,你可以分割或不分割字符串。 –