Dividir una cadena usando delimitadores de espacio y una longitud máxima

Me gustaría dividir una cadena de forma similar a.split() (lo que da como resultado una lista) pero de una manera más inteligente: me gustaría dividirlo en trozos de hasta 15 caracteres, pero no se dividen a mitad de palabra, así que:

string = 'A string with words'

[splitting process takes place]

list = ('A string with','words')

La cadena en este ejemplo se divide entre 'con' y 'palabras' porque ese es el último lugar donde puede dividirla y el primer bit debe tener 15 caracteres o menos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta