剑指offer 字符串的排列 Python实现

def list_all(string):
    new_list_set = []
    if len(string) == 1:
        return string
    for i in range(len(string)):
        sub_string = string[:]
        sub_string.pop(i)
        result_list = list_all(sub_string)
        for result in result_list:
            if result+string[i] not in new_list_set:
                new_list_set.append(result+string[i])
    return new_list_set


string = list("asa")
for string_list in list_all(string):
    print(string_list)
将数组的全排列看成是通过递归实现的,则只要将每次去除元素string[i]后的子串递归即可

猜你喜欢

转载自blog.csdn.net/z2539329562/article/details/80807443