我有一个列表[‘a’,’b’,’c’,’d’]我需要一个列表[‘a’,’ab’,’abc’,’abcd’,’ bc’,’bcd’,’cd’,’d’].
我一直在看itertools,但我没有看到如何使这项工作.
对于all combinations,代码将是:
from itertools import permutations stuff = ['a','b','c','d'] for i in range(0,len(stuff)+1): for subset in permutations(stuff,i): print(subset)
如果只返回顺序组合,我需要做什么?我想我可以随时检查每个排列的顺序,但这似乎不是最好的方法.
解决方法
很简单:
stuff = ['a','d'] print([''.join(stuff[i:j]) for i in range(len(stuff)) for j in range(i+1,len(stuff)+1)])
给
['a','ab','abc','abcd','bc','bcd','cd','d']