使用Python查找排列和组合

时间:2010-10-14 10:18:55

标签: python permutation

我有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可以提供任何帮助吗?

2 个答案:

答案 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);