相关疑难解决方法(0)

如何在Python中生成列表的所有排列

如何在Python中生成列表的所有排列,与该列表中的元素类型无关?

例如:

permutations([])
[]

permutations([1])
[1]

permutations([1, 2])
[1, 2]
[2, 1]

permutations([1, 2, 3])
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

python algorithm permutation combinatorics python-2.5

543
推荐指数
18
解决办法
58万
查看次数

Python中是否有一个函数可以生成给定字母表中所有长度为n的字符串?

我需要一个函数generateAllStrings(n, alphabet)来做这样的事情:

generateAllStrings(4, ['a','b'])
>>> ["aaaa", "aaab", "aaba", "aabb", "abaa", .... , "bbba", "bbbb"]
Run Code Online (Sandbox Code Playgroud)

换句话说,generateAllStrings(n, alphabet)应该在列表字母表中的字符上返回长度为n的所有可能的字符串.

在itertools中有这样的功能吗?

python string algorithm

11
推荐指数
1
解决办法
2517
查看次数

最大数量组合

我正在尝试使用0到9之间的所有数字生成一组四个数字中所有可能数字组合的列表.

我越来越接近,但输出并没有显示从0000一直到9999的所有可能组合.

有关为什么以下代码丢弃某些组合的任何线索?

def permgen(items, n):
  if n==0: yield []
    else:
        for i in range(len(items)):
            for cc in permgen(items[:i]+items[i+1:],n-1):
                yield [items[i]]+cc

if __name__=="__main__":
    for c in permgen(['0','1','2','3','4','5','6','7','8','9'],4): print ''.join(c)

python combinations

3
推荐指数
1
解决办法
2504
查看次数