如何将输出字符串所有的排列组合

"""
例如我一个字符串
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)))

img


望采纳

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))))