Implementación rápida de n-gramas de caracteres usando python

Escribí el siguiente código para calcular bigramas de caracteres y la salida está justo debajo. Mi pregunta es, ¿cómo obtengo una salida que excluye el último carácter (es decir, t)? ¿Existe un método más rápido y eficiente para calcular n-gramas de caracteres?

b='student'
>>> y=[]
>>> for x in range(len(b)):
    n=b[x:x+2]
    y.append(n)
>>> y
['st', 'tu', 'ud', 'de', 'en', 'nt', 't']

Aquí está el resultado que me gustaría obtener:['st','tu','ud','de','nt]

Gracias por adelantado por tus sugerencias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta