用Python简洁高效的对任意个字母abc..排序

mac2024-05-22  43

例如 输入字符串abc, 则打印出由字符a,b,c所能排列出来的所有字符串 abc,acb,bac,bca,cab,cba

#!/usr/bin/env python # -*- coding: utf-8 -*- # author:lc time:2019/10/31 num = 1 #定义一个变量记录次数 def sort(str_list,k,m): if k == m: global num print(num,str_list) num += 1 else: for i in range(k,m+1): str_list[i], str_list[k] = str_list[k], str_list[i]#列表内元素交换 sort(str_list, k+1, m)#递归 str_list[i], str_list[k] = str_list[k], str_list[i]#还原列表 if __name__ == '__main__': str_list = ['a', 'b', 'c']#定义一个列表存放字母,可以任意个 sort(str_list, 0, len(str_list)-1)

输出结果:

1 ['a', 'b', 'c'] 2 ['a', 'c', 'b'] 3 ['b', 'a', 'c'] 4 ['b', 'c', 'a'] 5 ['c', 'b', 'a'] 6 ['c', 'a', 'b']
最新回复(0)