# 文字列の辞書順列挙 # 実行方法: python3 strings.py 文字種類数 文字列最大長 # 実行例: python3 strings.py 2 3 def strings(cs, n, s): """文字列を辞書順で再帰的に列挙""" if n == 0: return [s] else: return [s] + [x for c in cs for x in strings(cs, n-1, s+c)] if __name__ == "__main__": from sys import argv from string import ascii_lowercase max_size = len(ascii_lowercase) try: size, length = int(argv[1]), int(argv[2]) if size < 0 or size > max_size or length < 0: raise Exception except Exception: exit(1) characters = ascii_lowercase[:size] for s in strings(characters, length, ""): print(s)