最初から白状しておきますと、数え上げのアルゴリズムはFe2+さんの
そのままです。
※思いつくどころか、コードを理解するのがやっと・・・
※アルゴリズムとか、苦手ですわ、あたしゃ・・・
というわけで、初心者でも読みやすいように、ほぼ同じ内容の書き直し
です。
--^ dice2.py
seed = [1,2,4,8] # 初期リスト
num = [0]
table= {}
length = len(seed)
print "--経過--"
for x in range(length): # range(x)は0〜xまでの整数リストを生成
for k in num:
num = num + [k + seed[x]]
print num # 計算経過を打ち出し
for x in num:
table[x]=1
out=table.keys()
out.sort()
print "--結果--"
print out
--$
経過の打ち出しは、アルゴリズムの学習用ということで・・・
とりあえず、数値の組み合わせ自身を書けとはどこにも書いていないので、
組み合わせの結果できる数値のリストだけを打ち出すように書いてみました。
要素の重複しないリストを作るため、辞書(連想配列)を応用してみました
(たしかAWK教典に載ってた)
機械伯爵