異なる基底(つまり基底4)で動作するrange()関数が必要です。range()with x Base(基数10ではない)
桁の量が知られている場合、私は次のことを行うことができます:
for a in range(4):
for b in range(4):
print str(a) + str(b)
生成するために必要な桁数の量は不明であるが。私はある種の再帰が必要だと思っています。
異なる基底(つまり基底4)で動作するrange()関数が必要です。range()with x Base(基数10ではない)
桁の量が知られている場合、私は次のことを行うことができます:
for a in range(4):
for b in range(4):
print str(a) + str(b)
生成するために必要な桁数の量は不明であるが。私はある種の再帰が必要だと思っています。
import itertools
import string
digits_len = 2
digits_repr = string.digits[:4]
for digits in itertools.product(digits_repr, repeat=digits_len):
print ''.join(digits)
これは洗練されたソリューションです。 –
jonrsharpeのコメントのおかげで、私は以下の解決策を考え出しました。エレガントではありませんが、仕事をします!ありがとうございました!
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)
base = 4
digits = 2
for x in range(base**digits):
print int2base(x, base).zfill(digits)
塩基/基数は、純粋に表示問題である、あなただけ ''正規範囲(16)が必要と適切なフォーマット( 'の' 'str'にint'を変換する関数hex、 'oct '、' bin'が組み込まれていますが、あなた自身でベース4を書く必要があります)。 – jonrsharpe
[任意のベースの整数を文字列に変換するにはどうすればよいですか?](http://stackoverflow.com/questions/2267362/how-to-convert-an-integer-in-any-base-to-a -string) –