字串 全組合

bitcarmanlee發表於2016-06-02

對於一個字元陣列,例如[“a”,”b”,”c”],求其全組合形式。結果為[‘a’, ‘b’, ‘ab’, ‘c’, ‘ac’, ‘bc’, ‘abc’]。

本博主被問到過這麼一個問題。整理了一下解題思路:
結果集裡,先將’a’放進來,然後再將’b’添進來,並且將’b’跟結果集中所有已存在的組合相加,以此類推。

def get_arranges():
    raw_list = ["a","b","c"]
    ret_list = []
    for term in raw_list:   #對所有關鍵字迴圈
        tmp_list = []
        tmp_list.append(term)
        for each in ret_list:   #tmp_list儲存每次的相加結果
            tmp_term = each + term
            tmp_list.append(tmp_term)
        ret_list.extend(tmp_list)   #結果集擴充套件

    print ret_list

get_arranges()    

程式碼執行結果:

['a', 'b', 'ab', 'c', 'ac', 'bc', 'abc']

相關文章