0
私はDFSを使用してすべての置換を印刷しますが、私は小さいpythonicを持っています 間違いw.r.t. fooからの戻り値DFSは文字列のすべての順列をPythonで印刷します
キー '1'の場合、fooの戻り値を[[1,2,3] [1,3,2]]にしたいが、現在は[1,2,3,1,3 、2]。 result.appendを使ってみましたが、うまくいきませんでした。
data = [1, 2, 3]
def foo(key, dict_data, output):
result = []
if len(output) == len(dict_data.keys()):
return output
values = dict_data[key]
for value in values:
if value not in output:
result += foo(value, dict_data, output + [value])
return result
dict_data = {}
for i in range(len(data)):
dict_data[data[i]] = data[0:i] + data[i+1:]
result = []
for key in dict_data.keys():
result += foo(key, dict_data, [key])
for i in range(0, len(result), len(data)):
print(result[i:i+len(data)])
基本的に私は余分なコードの最後の2行を使いたくありません。