Program rekursywny Pythona do inicjowania mnożenia liczby

Napisałem następujący program, aby zaliczyć liczbę mnogą:

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

Oto dane wyjściowe, które otrzymuję:

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

Altho ', zwrócona wartość jest drukowana poprawnie, po zwróconej wartości wydaje się, że przez cały czas nie drukuje. czego mi brakuje?

Ponadto, jak mogę ulepszyć program (kontynuując używanie rekursji)

questionAnswers(5)

yourAnswerToTheQuestion