Рекурсивная программа Python для простого разложения числа

Я написал следующую программу для простого разложения на числа:

import math
def prime_factorize(x,li=[]):
    until = int(math.sqrt(x))+1
    for i in xrange(2,until):
        if not x%i:
            li.append(i)
            break
    else:                      #This else belongs to for
        li.append(x)
        print li               #First print statement; This is what is returned
        return li
    prime_factorize(x/i,li)

if __name__=='__main__':
    print prime_factorize(300)   #Second print statement, WTF. why is this None

Ниже приведен вывод, который я получаю:

 [2, 2, 3, 5, 5]
 None

Altho»возвращаемое значение печатается правильно, возвращаемое значение, кажется, не печатает ничего, все время. Что мне не хватает?

Кроме того, как я могу улучшить программу (продолжая использовать рекурсию)

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

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