import copy
cnt = 0
def ModifySublist(Ls, idx, value):
res = copy.deepcopy(Ls)
res[idx].append(value)
return res
def InsertSublist(Ls, idx, value):
res = copy.deepcopy(Ls)
res.insert(idx, [value])
return res
def GenDists(AList, Level, Limit):
global cnt
if (Level==Limit):
print( AList)
cnt += 1
else:
for i in range(len(AList)):
GenDists(ModifySublist(AList, i, Level), Level + 1, Limit)
GenDists(InsertSublist(AList, i, Level), Level + 1, Limit)
GenDists(InsertSublist(AList, len(AList), Level), Level + 1, Limit)
GenDists([], 0, 3)
print(cnt)
aW1wb3J0IGNvcHkKY250ID0gMAoKZGVmIE1vZGlmeVN1Ymxpc3QoTHMsIGlkeCwgdmFsdWUpOgogICAgcmVzID0gY29weS5kZWVwY29weShMcykKICAgIHJlc1tpZHhdLmFwcGVuZCh2YWx1ZSkKICAgIHJldHVybiByZXMKCmRlZiBJbnNlcnRTdWJsaXN0KExzLCBpZHgsIHZhbHVlKToKICAgIHJlcyA9IGNvcHkuZGVlcGNvcHkoTHMpCiAgICByZXMuaW5zZXJ0KGlkeCwgW3ZhbHVlXSkKICAgIHJldHVybiByZXMKCmRlZiBHZW5EaXN0cyhBTGlzdCwgTGV2ZWwsIExpbWl0KToKICAgIGdsb2JhbCBjbnQKICAgIGlmIChMZXZlbD09TGltaXQpOgogICAgICAgIHByaW50KCBBTGlzdCkKICAgICAgICBjbnQgKz0gMQogICAgZWxzZToKICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oQUxpc3QpKToKICAgICAgICAgICAgR2VuRGlzdHMoTW9kaWZ5U3VibGlzdChBTGlzdCwgaSwgTGV2ZWwpLCBMZXZlbCArIDEsIExpbWl0KQogICAgICAgICAgICBHZW5EaXN0cyhJbnNlcnRTdWJsaXN0KEFMaXN0LCBpLCBMZXZlbCksIExldmVsICsgMSwgTGltaXQpCiAgICAgICAgR2VuRGlzdHMoSW5zZXJ0U3VibGlzdChBTGlzdCwgbGVuKEFMaXN0KSwgTGV2ZWwpLCBMZXZlbCArIDEsIExpbWl0KQoKR2VuRGlzdHMoW10sIDAsIDMpCnByaW50KGNudCk=
[[0, 1, 2]]
[[2], [0, 1]]
[[0, 1], [2]]
[[1, 2], [0]]
[[2], [1], [0]]
[[1], [0, 2]]
[[1], [2], [0]]
[[1], [0], [2]]
[[0, 2], [1]]
[[2], [0], [1]]
[[0], [1, 2]]
[[0], [2], [1]]
[[0], [1], [2]]
13