python简单的迷宫问题求最简解

题目背景
给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。

题目描述

输入格式
第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。

输出格式
给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。

输入输出样例
输入 #1复制
2 2 1
1 1 2 2
1 2
输出 #1复制
1

你这是回溯,需要状态重置噢。
在27,28行加上
a-= x
b-=y
试试


N ,M ,T =map(int,input().split())
dianzhen =[]
for i in range(1,N+1):
    for j in range(1,M+1):
        dianzhen.append((i,j))
x0, y0, x1 ,y1 = map(int,input().split())
obstacle = []
for i in range(T):
    x, y =map(int,input().split())
    obstacle.append((x,y))
n = 0
Flag = True
def shensou(a, b):
    global Flag
    global n
    if a == x1 and b == y1:
        Flag = False
        n += 1
        return n
    if Flag:
        if (a,b) in dianzhen not in obstacle:
            for x,y in (0,1),(1,0),(0,-1),(-1,0):
                a +=x
                b +=y
                shensou(a,b)

print(shensou(x0, y0))

请问我的答案错在哪里