Tehtäväsi on muodostaa kaikki sanat, jotka saadaan annetun sanan kirjaimista ja joissa ei ole peräkkäin kahta samaa kirjainta.
Tässä sana tarkoittaa mitä tahansa kirjainyhdistelmää, eikä sen tarvitse olla esimerkiksi suomen kielen sana. Esimerkiksi jos sana on kala
, halutut sanat ovat akal
, akla
, alak
, alka
, kala
ja laka
.
Toteuta tiedostoon allwords.py
funktio create_words
, jolle annetaan sana. Funktion tulee palauttaa listana kaikki halutut sanat aakkosjärjestyksessä.
Voit olettaa, että sanan pituus on välillä merkkiä. Funktion tulee toimia tehokkaasti kaikissa tällaisissa tapauksissa.
def create_words(word): # TODO if __name__ == "__main__": print(create_words("abc")) # ['abc', 'acb', 'bac', 'bca', 'cab', 'cba'] print(create_words("aab")) # ['aba'] print(create_words("aaab")) # [] print(create_words("kala")) # ['akal', 'akla', 'alak', 'alka', 'kala', 'laka'] print(create_words("syksy")) # ['ksysy', 'kysys', 'skysy', 'syksy', 'sykys', 'sysky', # 'sysyk', 'yksys', 'ysksy', 'yskys', 'ysyks', 'ysysk'] print(len(create_words("aybabtu"))) # 660 print(len(create_words("abcdefgh"))) # 40320