def search(l,aim,start=0,end=None): if not end:end = len(l)-1 if start<=end: mid = start + (end-start)//2 mid_value = l[mid] if aim > mid_value: start = mid+1 ret = search(l,aim,start,end) return ret elif aim < mid_value: end = mid-1 ret = search(l,aim,start,end) return ret else: return mid else: pass l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] ret = search(l,15) print(ret)