def dfs(maze, i, j, route, res): if not 0 <= i < len(maze) or not 0 <= j < len(maze[0]) or maze[i][j] != 0: return route.append((i,j)) if i == len(maze)-1 and j == len(maze[0])-1: if not res or len(route) < len(res[0]): res.append(route[:]) ...