Merkkijonon anagrammi sisältää kaikki merkkijonon merkit jossakin järjestyksessä. Tehtäväsi on muodostaa kaikki annetun merkkijonon anagrammit.
Voit olettaa, että merkkijono muodostuu merkeistä a
–z
ja siinä on enintään 8 merkkiä. Algoritmisi tulee toimia tehokkaasti kaikissa näissä tapauksissa.
Toteuta tiedostoon anagrams.py
funktio create
, joka palauttaa merkkijonon anagrammit listana aakkosjärjestyksessä.
def create(s): # TODO if __name__ == "__main__": print(create("abc")) # ['abc', 'acb', 'bac', 'bca', 'cab', 'cba'] print(create("aaaaa")) # ['aaaaa'] print(create("abab")) # ['aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa'] print(len(create("aybabtu"))) # 1260