排列生成算法(python)

来源:互联网 发布:淘宝店卖家中心在哪 编辑:程序博客网 时间:2024/06/04 17:51
用例:
[1,2,3,4,5]的排列有(5!)种,包括12345,12354等等。
permute([1,2,3,4,5],0)计算序号为0的排列,即12345。
源代码:
def permute(seq, index):  seqc = seq[:]  seqn = [seqc.pop()]  divider = 2  while seqc:    index, new_index = divmod(index,divider)    seqn.insert(new_index, seqc.pop())    divider += 1  return ''.join(seqn)
0 0
原创粉丝点击