Для этого проекта, над которым я работаю, я пишу способ последовательно найти все возможные комбинации из четырех букв. Я думал о написании цикла, который увеличивает 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
@ TigerhawkT3 Конечно, я отредактировал свое сообщение и добавил несколько примеров – chamington