Python 全排列

来源:互联网 发布:淘宝联盟首页登陆 编辑:程序博客网 时间:2024/05/17 16:03
#!/usr/bin/env python# -*- coding: utf-8 -*-import osimport reimport jsonimport sysreload(sys)sys.setdefaultencoding('utf-8')'''    Python 实现的全排列 递归'''def permutation(result, str, list):    """        取一个数组的全排列        list:为输入列表        str:传空字符串        result: 为结果列表    """    if len(list) == 1:        result.append(str + "," + list[0])    else:        uniq_dict={}        for temp_str in list:            temp_list = list[:]            temp_list.remove(temp_str)            if str == '':                permutation(result, temp_str, temp_list)            else:                permutation(result, str + "," + temp_str, temp_list)test = []permutation(test, "", ['1', '2', '3','3'])print testdef permutation2(result, str, list):            #里面有重复的元素    """        取一个数组的全排列        list:为输入列表        str:传空字符串        result: 为结果列表    """    if len(list) == 1:        result.append(str + "," + list[0])    else:        uniq_dict={}        for temp_str in list:            if uniq_dict.has_key(temp_str):     #检测是否有重复                continue            else:                uniq_dict[temp_str]=1                temp_list = list[:]                temp_list.remove(temp_str)                if str == '':                    permutation2(result, temp_str, temp_list)                else:                    permutation2(result, str + "," + temp_str, temp_list)test2 = []permutation2(test2, "", ['2', '3','3'])print test2参考博客:http://blog.csdn.net/tiantiandjava/article/details/19488259
0 0
原创粉丝点击