使用itertools combonations_with_replacement时缺少序列

Shi*_*ilo 3 python set python-itertools

from itertools import combinations_with_replacement

x = 'opo'
v = combinations_with_replacement(x, len(x))
ans = [''.join(map(str, x)) for x in v]
print(" ".join(set(ans)))
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我错过了pop这里的序列.为什么pop不显示,但ppoopp做的.

预期产出 opp ppp poo ppo ooo opo oop pop

实际产出 opp ppp poo ppo ooo opo oop

Tim*_*ers 6

考虑一下:

>>> x = 'abc'
>>> v = itertools.combinations_with_replacement(x, len(x))
>>> ans = [''.join(map(str, x)) for x in v]
>>> ans
['aaa', 'aab', 'aac', 'abb', 'abc', 'acc', 'bbb', 'bbc', 'bcc', 'ccc']
Run Code Online (Sandbox Code Playgroud)

序列中的与什么无关combinations_with_replacement; 只有序列中的位置计数.你的问题与询问原因相同,'bab'并且'cac"不会出现在我的例子中.提示:函数的名称不是permutations_with_replacement;-)