Folgendes Programm berechnet die Potenzmenge eines Feldes A mit der Länge n. Ich frage mich, wieso es funktioniert. Konkret was

for M in potenzmenge(n - 1, A):

tut und wie die def in einer for-Schleife umgesetzt wird, bzw. was da passiert.

Danke schon einmal. :)

Hier das Programm:

Def Potenzmenge (n, A):
If n == 0:
return([[]])

P = []

for M in potenzmenge(n - 1, A):
P.append(M)
P.append(M + [A[n - 1]])
return(P)

print (potenzmenge(3, [''a,'b','c'])