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
不显示,但ppo
和opp
做的.
预期产出 opp ppp poo ppo ooo opo oop pop
实际产出 opp ppp poo ppo ooo opo oop
考虑一下:
>>> 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
;-)