"""
例如我一个字符串
string="aabb"
如何输出所有的排列结果,比如
list=['aabb','abba','bbaa','abab','baab','baba']
"""
def str_rank_combination(s=""):
"""输入一个字符串,返回一个由这些字符组成的排列组合(递归思想)"""
if len(s) <= 1:
return [s]
else:
str_list = []
for i in range(len(s)):
for tmp_str in str_rank_combination(s[:i] + s[i + 1:]):
str_list.append(s[i] + tmp_str)
return str_list
if __name__ == "__main__":
s = 'aabb'
str_list = str_rank_combination(s)
print("排列组合数明细:%s" % list(set(str_list)))

望采纳
def perm(s=''):
if len(s)<=1:
return [s]
sl=[]
for i in range(len(s)):
for j in perm(s[0:i]+s[i+1:]):
sl.append(s[i]+j)
return sl
string ="aabb"
print( list(set(perm(string))))