Usando un algoritmo de bisección recursiva para verificar si el carácter está en la cadena

Actualmente estoy haciendo el curso de programación en edx y mis instrucciones son las siguientes: Utilizando la idea de búsqueda en bisección, escriba un algoritmo recursivo que verifique si un carácter está incluido dentro de una cadena, siempre que la cadena esté en orden alfabético. Mi código (python 2.7) está aquí:

def isitIn(char, aStr):
   m = aStr[len(aStr) // 2]
   if aStr == '' or len(aStr) == 1 or char == m:
      return False
   else:
      if char < m:
         return isitIn(char, aStr[:-1])
      elif char > m:
         return isitIn(char, aStr[1:])
   return isitIn(char, aStr)

Mi explicación: primero comienzo encontrando el carácter central de la cadena. Si es igual al personaje, devuelve False. Si no es igual al carácter, continúa para verificar si el carácter es más bajo que el carácter medio, y luego usa la función recursiva para crear las pilas y finalmente devuelve un valor booleano de Verdadero. Ahora utilicé los índices -1 y 1, ya que no quiero incluir el carácter central.

En lugar de una solución, preferiría recibir sugerencias ya que todavía estoy tratando de resolverlo, pero una perspectiva diferente nunca duele. ¡Gracias!

Error message:
Test: isIn('a', '')
Your output:
Traceback (most recent call last):
File "submission.py", line 10, in isIn
m = aStr[len(aStr) // 2]
IndexError: string index out of range
Correct output:
False

Respuestas a la pregunta(4)

Su respuesta a la pregunta