我的任务是打印出' D'的所有组合。和' E' 4个字符。 我有什么:
x = product(['D', 'E'], repeat=4)
p = ''.join(str(s) for s in x)
lxx = []
lxx.append(p)
f = ''.join(lxx)
print(f)
我得到了什么:
('D', 'D', 'D', 'D')('D', 'D', 'D', 'E')('D', 'D', 'E', 'D')('D', 'D', 'E', 'E')('D', 'E', 'D', 'D')('D', 'E', 'D', 'E')('D', 'E', 'E', 'D')('D', 'E', 'E', 'E')('E', 'D', 'D', 'D')('E', 'D', 'D', 'E')('E', 'D', 'E', 'D')('E', 'D', 'E', 'E')('E', 'E', 'D', 'D')('E', 'E', 'D', 'E')('E', 'E', 'E', 'D')('E', 'E', 'E', 'E')
我需要什么:
DDDD
DDDE
DDED
DDEE
DEDD
DEDE
DEED
DEEE
EDDD
EDDE
EDED
EDEE
EEDD
EEDE
EEED
EEEE
答案 0 :(得分:4)
这将有效:
from itertools import product
list(product(['D', 'E'], repeat=4))
漂亮的印刷:
for i in product(['D', 'E'], repeat=4):
print(''.join(i))
# DDDD
# DDDE
# DDED
# DDEE
# DEDD
# DEDE
# DEED
# DEEE
# EDDD
# EDDE
# EDED
# EDEE
# EEDD
# EEDE
# EEED
# EEEE
答案 1 :(得分:1)
from itertools import product
x = product(['D', 'E'], repeat=4)
for word in ["".join(x) for x in list(x)]: print(word)
DDDD
DDDE
DDED
DDEE
DEDD
DEDE
DEED
DEEE
EDDD
EDDE
EDED
EDEE
EEDD
EEDE
EEED
EEEE
答案 2 :(得分:0)
如果您需要某些东西"不那么神奇",我认为您正在寻找这样的东西:
def product(items, repeat, currentstring="", ret = None):
if ret == None:
ret = list()
if len(currentstring) == repeat:
ret.append(currentstring)
print(currentstring)
else:
for letter in items:
product(items, repeat, currentstring + letter, ret)
return ret
product(['D', 'E'], repeat=4)
其他答案似乎有效。所以,使用它只是为了你想要练习递归或其他东西。关于它的好处是,它允许接收更多的信件。比如,你可以试试
product(['D', 'E', 'F', 'G'], repeat=4)