入力した文字が"a"と"b"と"1"だったとします。
これらから文字列を作成した時
a, b, 1, aa, ab, a1, ba, bb, b1, 1a, 1b, 11, aaa,・・・
このように指定した文字と数字を使って文字列を作成したいです。
アルゴリズムをコードで欲しいです。
宜しくお願いします。
[python]定めた文字列の全通りの出力
Re: [python]定めた文字列の全通りの出力
[Python]連続した文字列作成のコードとほとんど同様にできます。
import sys
def moziretu(chars):
def moziretu_internal(len):
if len <= 0:
yield ''
else:
for c in chars:
for s in moziretu_internal(len - 1):
yield c + s
length = 1
while True:
for ret in moziretu_internal(length):
yield ret
length += 1
chars = list(sys.stdin.readline().rstrip())
isfirst = True
for m in moziretu(chars):
if not isfirst:
sys.stdout.write(', ')
sys.stdout.write(m)
isfirst = False
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)