I am trying to make a code that bruteforces magic squares
Yes! I have checked the docs, but I can't wrap my head around it.
Any idea what causes the bugs?
a   =   [0,0,0,
         0,0,0,
         0,0,0]
def test(a=a):
    for i in range(len(a)-1):
        b = a
        b.pop(i)
        if a[i] in b:
            return 0
    return 1
def win():
    global a
    if sum(a[0:3]) == sum(a[3:6]) == sum(a[6:]) == (a[0]+a[4]+a[8]) == (a[2]+a[4]+a[6]) == (a[0]+a[3]+a[6]) == (a[1]+a[4]+a[7]) == (a[2]+a[5]+a[8]):
        print(a[:3], "\n", a[3:6], "\n", a[6:])
        return True
    return False
def m(x):
    global a
    while a[x] < 100:
        if test() == 1:
            if x == 8:
                if win():
                    print(a)
                    return True
            else:
                m(x+1)
        a[x] += 1
    return False
print(m(0))
pycharm also spits out this bug report:
C:\Users\2404sebj\AppData\Local\Programs\Python\Python36-32\python.exe "C:/Uisers/2404sebj/PycharmProjects/gjør matte her/Matte.py"
Traceback (most recent call last):
  File "C:/Users/2404sebj/PycharmProjects/gjør matte her/Matte.py", line 33, in <module>
    print(m(0))
  File "C:/Users/2404sebj/PycharmProjects/gjør matte her/Matte.py", line 29, in m
    m(x+1)
  File "C:/Users/2404sebj/PycharmProjects/gjør matte her/Matte.py", line 22, in m
    while a[x] < 100:
IndexError: list index out of range
Process finished with exit code 1
May all admins, mods, mortal programers and script kiddies judge me and the contents of this post.
 
    