全排列问题python

本文探讨如何使用Python处理包含重复元素的数组全排列,以及不含重复元素数组的全排列,并介绍如何找到全排列中的第k个组合。
摘要由CSDN通过智能技术生成

1.给定一个数组,数组内含有重复元素,对数组中的元素进行全排列,输出排列组合

def unique(nums):##去掉重复的排列
    begin=0;end=len(nums)
    result=[]
    if end==0:
        result[[]]
    permute_temp(begin,end,nums,result)
    result.sort()
    n=len(result)
    i=0
    while i<len(result)-1:
        if result[i]==result[i+1]:
            del result[i]
        else:
            i+=1
    return result
def permute_temp(begin,end,nums,result):
    if begin==end:
        k=nums[:]
        #print(k)
        result.append(k)
    else:
        for i in range(begin,end):
            temp=nums[begin];nums[begin]=nums[i];nums[i]=temp
            permute_temp(begin+1,end,nums,result)
            temp=nums[begin]
            nums[begin]=nums[i]
            nums[i]=temp
if __name__=="__main__":
    nums=[1,3,2]
    allresult=unique(nums)
    print(allresult)
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值