5 * 4 değil de 5 * factorial(4) olduğu için aslında orada fonksiyonu tekrar çağırıyorsun. Matematikteki gibi düşünürsen 5! = 5 * 4! işlemini yapmış oluyorsun. Devam ettirirsen 5! = 5 * 4 * 3! , 5! = 5 * 4 * 3 * 2! şeklinde açarak işlem yapıyor fonksiyonun. En son 5! = 5 * 4 * 3 * 2 * 1! oluyor. Fonksiyonunda number = 1 olduğu durumda 1 döndürdüğün için en sondaki 1! değeri 1'e eşit oluyor. Bu durumda da 5! = 5 * 4 * 3 * 2 * 1 sonuca ulaşıyorsun. Birkaç kaynaktan daha özyineleme çalışmanı öneririm.