печать powerset строки

Я пытаюсь написать код Python для печатиPowerset строки, но сталкиваюсь с некоторыми ошибками. Вот'что яу нас есть:

def getperm (string):
    perm = []
    if len(string) == 0:
        perm.append("")
        return perm
    #if len(string) == 1:
    #   perm.append(string)
    #   perm.append("")
    first = string[0]
    print "first = " + str(first)
    rem = string[1:len(string)]
    print "rem = " + str(rem)
    words = getperm(rem)
    for word in words:
        for i in range(len(word)):
            temp = string[0:i] + first + string[i:len(string)]
            print "temp = " + str(temp)
            perm.append(temp)

    return perm

if __name__=="__main__":
    a = "ab"
    mag  = getperm(a)
    print mag

Мой ожидаемый результат будет:

['', 'a', 'b', 'ab']

Мой фактический вывод:

[]

Может ли кто-нибудь помочь мне выяснить, чтопроисходит? Это какой-то нюанс Python или в моем коде ошибка? Я думаю, что мой код должен быть в порядке - яя ухожу из пятого издания интервью Cracking the coding

Спасибо!

Ответы на вопрос(6)

Ваш ответ на вопрос