私はダイスロールのすべての可能な置換を取得しようとしています。以下は私のコードです。AttributeError: 'NoneType'オブジェクトに 'append'(再帰関数)属性がありません
def PrintAllPerms(n, arr, str_):
if (n == 0):
print str_
arr.append(str_)
return arr
else:
for i in ["1","2","3","4","5","6"]:
str_ = str_ + i
arr = PrintAllPerms(n-1,arr,str_)
str_ = str_[:-1]
PrintAllPerms(2,[],"")
しかし、これだけ多く印刷した後はエラーが発生しました。
PrintAllPerms(2,[],"")
11
12
13
14
15
16
21
<ipython-input-7-d03e70079ce2> in PrintAllPerms(n, arr, str_)
2 if (n == 0):
3 print str_
----> 4 arr.append(str_)
5 return arr
6 else:
AttributeError: 'NoneType' object has no attribute 'append'
なぜ2,1まで印刷されるのですか?
これに対処する正しい方法は何ですか?