I'm writing a Python program to find the target in 2D array recursively, to solve this question. I'm using a binary search method to recursively find if target exist, but it gave me this maximum recursion depth exceeded error. Any suggestions?
My code:
def searchMatrix(self, matrix, target):
    small = [0,0]
    big = [len(matrix)-1,len(matrix[0])-1]
    return self.searchUtil(matrix,target,small,big)
    
def searchUtil(self,matrix,target,small,big):
    if big >= small:
        #find the mid target
        midx,midy = (small[0]+big[0])/2,(small[1]+big[1])/2
        if matrix[midx][midy] == target:
            return True
        #if mid is >= target, it will exclude all the element smaller than it
        if matrix[midx][midy] >= target:
            return self.searchUtil(matrix,target,[midx,0],[midx,midy-1]) or self.searchUtil(matrix,target,[0,midy],[midx-1,midy]) or self.searchUtil(matrix,target,[0,0],[midx-1,midy-1])
        else:
        #if mid is < target, it will exclude all the element bigger than it
            return self.searchUtil(matrix,target,[midx+1,0],[len(matrix)-1,midy]) or self.searchUtil(matrix,target,[0,midy+1],[midx,len(matrix[0])-1]) or self.searchUtil(matrix,target,[midx+1,midy+1],[len(matrix)-1,len(matrix[0])-1])
    else:
        return False
 
    