生成所有可能的排列,然后组合所有可能的结果?

2024-03-28 23:46:36 发布

您现在位置:Python中文网/ 问答频道 /正文

例如(在python中):

import itertools
perms = itertools.permutations([1,2])
print list(perms)

将给我们:

[(1, 2), (2, 1)]

但我的目标是我需要所有可能的排列(或组合?)以-xx-xx-的形式。 它需要包含从a-z到0-9的所有可能的字符。 在这种情况下,例如:

-aa-01-
-az-33-
-b6-k0-
-z9-5x-
-aa-aa-

(允许复制)等,直到用尽所有可能的组合。你知道吗

我明白这会导致大量的可能结果,我认为-xx-xx是1679616个可能的结果。你知道吗

我的问题是,我该如何最有效地进行这项工作?我不知道从哪里开始,而且我已经能够使用itertools生成一些东西。我不知道应该在哪里把每个组合映射到下一个组合,直到它们全部完成。你知道吗


Tags: import目标情况字符形式listazaa
1条回答
网友
1楼 · 发布于 2024-03-28 23:46:36

^{},使用repeat参数可能适合您。你知道吗

下面是一个小例子:

import itertools

for x in itertools.product('abc', repeat=4):
    print x

这将打印出:

('a', 'a', 'a', 'a')
('a', 'a', 'a', 'b')
('a', 'a', 'a', 'c')
('a', 'a', 'b', 'a')
('a', 'a', 'b', 'b')
('a', 'a', 'b', 'c')
   ... clip ....

我把实际的解决办法留给你。你知道吗

相关问题 更多 >