# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param str string字符串 # @return string字符串一维数组 # class Solution: def wuhu(self, output: list, added_list: list, remain_list: list): # 当剩余列表为空时,说明已经完成一种排列 if len(remain_list) == 0: # 将当前排列拼接成字符串并添加到输出列表中 output.append(''.join(added_list)) for i in range(len(remain_list)): # 跳过重复元素,避免生成重复的排列 if i > 0 and remain_list[i] == remain_list[i - 1]: continue # 复制当前已添加的列表,并添加当前元素 added_list_copy = added_list[:] + [remain_list[i]] # 复制剩余列表,移除当前元素 remain_list_copy = remain_list[:i] + remain_list[i + 1:] # 递归调用函数,继续生成排列 self.wuhu(output, added_list_copy, remain_list_copy) def Permutation(self, str: str) -> List[str]: # 对输入字符串进行排序,方便后续去重 sorted_str = sorted(str) output, added_list, remain_list = [], [], sorted_str # 调用递归函数生成排列 self.wuhu(output, added_list, remain_list) return output