python - Loop in recursive function -
for algorithm found convenient define recursive function looks this:
def f(l): in range(2): if len(l)>=1: print(l+[i]) else: return f(l+[i]) f([0]) but behavior different expect. print
[0, 0] [0, 1] but expect print
[0,0] [0,1] [1,0] [1,1] somehow nested function has access variable i, , instead of starting new loop different variable, continues on counting variable i. don't understand why python this.
my (vague) question therefore why python this, , there obvious modification code give output expected?
your code never recurses.
for in range(2): if len([0])>=1: print([0]+[i]) else: return f([0]+[i]) # de-functified first time through for loop, len([0]) >= 1 true, prints [0] + [0]. second time through for loop, len([0]) >= 1 still true, prints [0] + [1]. loop ends , control passes outside function. never reach recursive case (len(l) < 1)
note intended result just:
import itertools result = itertools.product(range(2), repeat=2) # cast list if necessary
Comments
Post a Comment