【发布时间】:2018-02-25 02:29:04
【问题描述】:
我有一个由 4 个数字字符串组成的列表(即:list = ['0000', '1111', ...]) 现在我想为每个项目获取所有可能的 4 位数组合(无代表)的列表
这是我使用排列的代码(当然它有重复,但我会发布这个,因为当我尝试组合时效果非常糟糕)
permutes = defaultdict(list)
for item in funo_clean: ## funo_clean is the list with 4 digit numbers
for permutation in list(itertools.permutations(item)):
permutes[item].append("".join([str(x) for x in permutation]))
print ("\n")
另外,我不希望组合列表包含我用来生成它的相同数字(即:如果我使用“8800”来生成它,这个数字不应该在列表中)
谢谢!
【问题讨论】:
-
你试过
itertools.combinations吗? -
@JohnGordon 是的,但结果不好(也许我没有正确使用它)这就是我使用排列发布代码的原因,因为它更符合我的目标。
-
向我们展示您的尝试,并解释为什么结果不是您想要的,也许我们可以提供帮助。
-
唯一的区别是 itertools.permutations(item) 到 itertools.combinations (item, len(item)) 的变化,但我得到的排列代码,例如:0647 => [0647, 0674 , 0467, ...] ## 以及所有可能的组合代码排列我只在列表 0647 => [0647] 中得到一项
标签: python combinations permutation