Un anagrama es una palabra o frase que resulta de la transposición de letras de otra palabra o frase.
Por ejemplo Jim Morrison, cantante de los Doors, se apodaba a sí mismo "Mr. Mojo Risin", anagrama de su nombre.
Los anagramas pueden ser útiles para nombrar proyectos. Por ejemplo el codec Xvid es un anagrama del codec DivX (o viceversa).
Dejo un programa en Python para encontrar anagramas. Está programado para encontrar los anagramas de "Arduino" pero se puede cambiar con facilidad.
def permuta(msg, letras, f):
"""Permuta 'letras' con el mesaje previo 'msg'.
El resultado lo escribe en el fichero f"""
if len(letras)==0:
f.write(msg+'\n')
else:
for i in range(len(letras)):
permuta(msg+letras[i], letras[:i]+letras[i+1:], f)
nombre = "arduino"
f = open(nombre+'.txt', 'wt')
permuta('', nombre, f)
Adjunto el resultado con la palabra "arduino".
Saludos.