Python 2.7:任何方法都可以为一定数量的数字返回数字0-9的所有可能组合?

时间:2016-12-25 02:51:33

标签: python python-2.7

例如:假设我想要所有可能的0-2到3位数的组合,代码将返回以下内容:

0

1

2

00

01

02

10

11

12

20

21

22

000

001

002

010

020

011

022

012

021

100

101

102

110

111

112

120

121

122

200

201

202

210

220

211

221

212

222

1 个答案:

答案 0 :(得分:-1)

首先遍历您想要查看的字符,然后循环调用itertools.product的结果,因为您描述的任务是笛卡尔积。在该内循环中,您可以通过将每个元素(整数)转换为字符串并将它们连接在一起来打印每个结果(元组)。

import itertools
for i in xrange(1,4):
    for item in itertools.product(xrange(3), repeat=i):
        print ''.join(map(str, item))

结果:

0
1
2
00
01
02
10
11
12
20
21
22
000
001
002
010
011
012
020
021
022
100
101
102
110
111
112
120
121
122
200
201
202
210
211
212
220
221
222