2. Tartamudeig (5 punts)

Avís

Per resoldre aquest exercici no es poden fer servir iteracions (ni for ni while ), només les funcions predefinides de Python i les dels mòduls itertools, functools i operator. Tampoc es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per desar tots els elements dels iteradors.

Tartamudejar n lletres d’una paraula consisteix a crear una nova «paraula» amb les primeres n lletres seguides de la paraula sencera. Per exemple, tartamudejant les quatre primeres lletres de la paraula 'saxofonista' obtenim 'saxosaxofonista'.

Dissenya la funció següent i desa-la al mòdul tartamut (fitxer tartamut.py):

tartamut.iter_tots(p)
Paràmetres:

p (str) – paraula, en minúscules

Retorna:

iterador sobre tots els tartamudejos possibles de p, des del tartamudeig de 0 lletres fins al tartamudeig de la paraula sencera, exceptuant aquells que continguin tres erres, esses o eles consecutives.

Per exemple,


>>> it = iter_tots('hola')
>>> next(it)
'hola'
>>> next(it)
'hhola'
>>> next(it)
'hohola'
>>> for p in it:
...    print(p, end=',')
holhola,holahola,

>>> for p in iter_tots('llull'):
...    print(p, end=',')
llull,llullull,

Disposes d’un joc de proves més complet al fitxer tests-tartamut.txt.