[问题] 排列组合问题或逻辑

楼主: aegisqoo (小猴)   2017-10-15 00:23:33
大家好,我新手也有爬文,有个问题
假设 a=[x,y,z] 且 0 <= x,y,z <= 9 的 x.y.z组合
如下:
for x in range(10):
for y in range(10):
for z in range(10):
a=[x,y,z]
print(a)
那问题是,有办法更简短吗?,假设今天a=[b,c,d,e,...z]
整个for循环就打很长,在网络上有看到指令
itertools中permutations可以直接排列,但想知道假设不用
这个指令,且只能用一般循环指令来写,有办法更简单吗?
或者是有人可以解释itertools.permutations的原始代码逻辑吗?
谢谢大大
作者: ckc1ark (伪物)   2017-10-15 01:19:00
你说的应该是itertools.product才对如果都是0~9 可以用0 ~ 10**N 的每个digit来产生
作者: flarehunter (Range)   2017-10-15 14:06:00
可以用DFS递回实作
作者: uranusjr (←這人是超級笨蛋)   2017-10-15 19:19:00
空两格四格八格我都看过, 缩排 16 格到底是怎么回事
作者: f496328mm (为什么会流泪)   2017-10-15 22:34:00
楼上 XD
作者: goldflower (金色小黄花)   2017-10-16 21:11:00
如果只是想用python的写法来简化的话那可以用list comprehension + exec来解决https://i.imgur.com/6re6PHU.png 大概这样 有点蠢XD第二行要改一下 没写好哈哈

Links booklink

Contact Us: admin [ a t ] ucptt.com