字符串全排列
方法一
def permutation(arr, start): #start 代表子字符串的首位置索引
if arr == None:
return
if start == len(arr)-1:
print(''.join(arr)) # 完成全排列后输出当前排列的字符串
else:
i = start
while i < len(arr):
arr[start], arr[i] = arr[i], arr[start] # 交换start与i所在位置的字符
permutation(arr, start + 1) # 固定第一个字符,对剩余的字符进行全排列
arr[start], arr[i] = arr[i], arr[start] # 还原start与i所在位置的字符
i += 1
arr = ['a','b','c']
permutation(arr,0)
方法二
def permutation(s):
if len(s) <= 1:
return [s]
else:
temp_list = []
for i in range(len(s)): # 遍历字符串 s 中的每个字符
for j in permutation(s[0:i] + s[i+1:]): # 把除了s[i]字符以外的字符组成字符串然后让它迭代
temp_list.append(s[i]+j)
return temp_list
方法一中传入的参数是列表,输出的是字符串
方法二中传入的参数是字符串,输出的是列表