如何编写Python代码输出给定字符串可生成的所有不重复字符串
实现代码
你可以借助Python标准库itertools.permutations生成所有排列,再通过集合自动去重得到符合要求的结果,代码如下:
import itertools def get_unique_permutations(s: str) -> list[str]: result = set() # 遍历所有可能的字符串长度,范围为1到原字符串总长度 for length in range(1, len(s)+1): # 生成对应长度的所有排列组合 for perm in itertools.permutations(s, length): # 将排列元组转为字符串存入集合完成去重 result.add(''.join(perm)) # 转为列表返回,可按需添加排序逻辑调整输出顺序 return list(result)
使用示例
# 测试输入为"AB" print(get_unique_permutations("AB"))
输出结果和要求完全匹配:
['A', 'B', 'AB', 'BA']
补充说明
如果输入字符串存在重复字符,该实现也会自动过滤重复的排列结果,比如输入"AAB"时,不会返回重复的"AA"等内容。
内容的提问来源于stack exchange,提问作者DIVYANSHU
相关产品推荐
相关产品推荐

