我有2个变量 - a和b。我需要使用这些变量来填充k个位置。所以如果k = 3输出应该是
[a,a,a], [a,a,b] , [a,b,a], [b,a,a], [a,b,b], [b,a,b], [b,b,a] and [b,b,b]
输入 - k
输出 - 所有组合
我如何用Python编写代码?在这里,itertools可以提供任何帮助吗?
答案 0 :(得分:6)
>>> import itertools
>>> list(itertools.product('ab', repeat=3))
[('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'b', 'a'), ('a', 'b', 'b'), ('b', 'a', 'a'), ('b', 'a', 'b'), ('b', 'b', 'a'), ('b', 'b', 'b')]
答案 1 :(得分:1)
def genPerm(varslist, pos,resultLen, result, resultsList)
if pos>resultLen:
return;
for e in varslist:
if pos==resultLen:
resultsList.append(result + [e]);
else
genPerm(varsList, pos+1, resultLen, result + [e], resultsList);
致电:
genPerm([a,b], 0, resLength, [], resultsList);