题目:求任意一个字符串的全排列组合,例如a='123',输出 123,132,213,231,312,321。(暂时假定字符串没有重复)
思路:递归,固定第一个数,后面的交换,递归过程可以看作两个数相互交换。
代码:
def sort0(ori_list): if len(ori_list) == 0: return [] res = sort1(ori_list) return res def sort1(get_list): if len(get_list)<=1: return get_list res = [] for i in range(len(get_list)): now_i = get_list[i] get_l = sort1(get_list[:i] + get_list[i+1:]) for j in get_l: tmp = now_i + j res.append(tmp) # res = set(res) # 有些要求排序,需要先转set return res a = ['a' , 'b' , 'c','d'] res = sort0(a) print(res)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)