python与替换的组合未按预期工作

hec6srdp  于 2023-03-04  发布在  Python
关注(0)|答案(2)|浏览(153)

我想通过使用一组允许的替换字符来生成特定长度的所有组合:
我认为itertools.combinations_with_replacement是我所需要的。所以这就是我所做的:

from itertools import combinations_with_replacement
allowed = ['0', '1', '8', '6', '9']
comb = list(combinations_with_replacement(allowed,2))

然而,这样产生的组合数是15,但它应该是25(5^2),这是怎么回事?
编辑:
我按照@Michael Bianconi的建议将combinations_with_replacement替换为permutations,但也不起作用-我得到的结果集为20,而不是25。

elcex8rz

elcex8rz1#

00, 01, 08, 06, 09
11, 18, 16, 19
88, 86, 89
66, 69
99

有15种可能的组合。

ffvjumwh

ffvjumwh2#

您可能会搜索该产品:

import itertools
allowed = ['0', '1', '8', '6', '9']
product = list(itertools.product(allowed, repeat=2))
print(len(product))

25
字符串在Python中是可迭代的,所以你可以用途:

import itertools
for result in itertools.product('01869', repeat=2)):
    print(result)

相关问题