Özyineleme (recursion), bir fonksiyonun kendini çağırmasıdır. Büyük bir problemi, aynı problemin küçük bir versiyonuna indirerek çözer.

Ayna benzetmesi

İki aynayı karşılıklı koyarsan sonsuz yansıma görürsün. Recursion da böyledir; ama mutlaka bir durma noktası gerekir.

Taban durum (base case)

Fonksiyonun kendini çağırmayı bırakacağı koşuldur. Onsuz sonsuza kadar çağırır ve program çöker.

Örnek: faktöriyel

def fakt(n):
    if n == 0:      # taban durum
        return 1
    return n * fakt(n - 1)

Kuzey Kutbu dersleriyle kendi elinle yazarak öğren.