置换问题
我正在尝试翻译这个优雅的Erlang代码,用于查找所有
列表的排列.
我认为它是与现在一样的函数,但它在Python中不起作用.
--在Python语言中是UPD.这是它应该发挥的作用.
烫发([])-[[]];
Perms(L)-[[H|T]|H<-L,T<-perms(L-[H])].
定义烫发(列表):
如果Lista==[]:
返回[[]]
其他:
对于列表中的h:
为t返回[([h]+[t]),单位为perms(upd(lista,h)]
Def upd(lista,elem,acc=tuple([])):
Lista=元组(Lista)
如果Lista==():
返回列表(Acc)
如果Lista[0]==elem:
返回列表(acc+tuple(lista[1:]))
其他:
返回UPD(lista[1:],elem,acc+tuple([lista[0]]))