if END_OF_WORD in cur_dict: self.result.add(cur_word) tmp, board[i][j] = board[i][j], "@" for k in xrange(4): x, y = i + dx[k], j + dy[k] if 0 <= x < self.m and 0 <= y < self.n \ and board[x][y] != "@" and board[x][y] in cur_dict: self._dfs(board, x, y, cur_word, cur_dict) board[i][j] = tmp