Python binary search recursive if possible
<pre><code>    class SortedList:
    theList = []


    def add(self, number):
        self.theList.append(number)
        return self.theList


    def remove(self, number):
        self.theList.remove(number)
        return self.theList


    def printList(self):
        return print(self.theList)


    def binarSearch(self, number):
        middle = (len(self.theList)//2)
        end = len(self.theList)


        if end != 0:
            if int(self.theList[middle]) == int(number):
                return print("The number is found in the list at place",middle+1)

            elif int(self.theList[middle]) &lt; int(number):
                self.theList = self.theList[middle:]
                return self.binarSearch(number)

            elif int(self.theList[middle]) &gt; int(number):
                self.theList = self.theList[:middle]
                return self.binarSearch(number)



        else:
            return print("The list is empty")

sorted = SortedList() #create a SortedList object

sorted.add("1")
sorted.add("2")
sorted.add("3")
sorted.add("4")
sorted.add("5")
sorted.add("6")

sorted.printList()
sorted.binarSearch(3)
</code></pre>

<p>I cannot use additional parameters I mut use only self and number. I want to make it recursive but if it is hard you can answer as normal.
This code works good until the number 4. When I give 4 for searching it says it is in place 2 and it continues saying two after 4. I have tried adding other numbers but it is same</p>