【发布时间】:2016-12-06 11:16:12
【问题描述】:
对于我正在进行的这个项目,我正在编写一种方法来按顺序查找四个字母的所有可能组合。我考虑编写一个循环来增加 i 并将 i 转换为四进制并替换 0、1、2 和 3。当 00 不会出现时,我遇到了问题。我考虑将 i 转换为基数 5 并忽略每次出现的 0,并替换 1、2、3 和 4。它确实对我有用,但问题是它不是很有效。
这是我目前最好的代码:
import string
digs = string.digits + string.letters
def int2base(x, base):
if x < 0: sign = -1
elif x == 0: return digs[0]
else: sign = 1
x *= sign
digits = []
while x:
digits.append(digs[x % base])
x /= base
if sign < 0:
digits.append('-')
digits.reverse()
return ''.join(digits)
for i in range(0,1000):
x=i
x=int2base(x, 5)
if str(x).count("0")==0:
print(i)
有什么方法可以修复它,以便打印它打印的内容,但我只需要将 i 插入一个函数? 输入输出示例
0 -> a
1 -> b
2 -> c
3 -> d
4 -> aa
5 -> ab
6 -> ac
7 -> ad
8 -> ba
9 -> bb
10 -> bc
11 -> bd
12 -> ca
13 -> cb
14 -> cc
15 -> cd
16 -> da
17 -> db
18 -> dc
19 -> dd
20 -> aaa
21 -> aab
【问题讨论】:
-
您能否提供示例输入和输出,以便我确定您是在寻找组合、排列还是产品?
-
@TigerhawkT3 当然,我编辑了我的帖子并添加了一些示例
标签: python