Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def solve_puzzle(puzzle,words):
- def sort_word(w):
- return "".join(sorted(list(w)))
- def create_word_dict(words):
- word_dict = {}
- for w in words:
- k = sort_word(w)
- word_dict[k] = word_dict.get(k,[]) + [w]
- return word_dict
- def solve(s,buffer,word_dict):
- #Sort buffer to match into word_dict
- buffer = sort_word(buffer)
- #Base case success
- if s == "" and buffer == "":
- yield "",True
- return
- #Buffer match
- elif buffer in word_dict:
- choices = word_dict[buffer]
- for tail,result in solve(s,"",word_dict):
- if(result):
- for c in choices:
- yield c + " " + tail,result
- #Base case failure
- elif s == "" and buffer != "":
- yield "",False
- return
- #Move char from string to buffer
- if s != "":
- yield from solve(s[1:],buffer + s[0],word_dict)
- word_dict = create_word_dict(words)
- for phrase,success in solve(puzzle,"",word_dict):
- if(success):
- print(phrase)
- if __name__ == "__main__":
- mnemonic_words = [w.strip() for w in open("monero_words.txt","r").read().split("\n") if w != ""]
- print(mnemonic_words)
- puzzle = "syapotelaicdphcunmmaosadtniiulrhsepanptinanfuovelniajobimzezpiazaobsbrddmeanerefufdlntgyirulpssrreiebdunegdeccaukpeadimlltseneismaelsammorewesecaontifuan"
- solve_puzzle(puzzle,mnemonic_words)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement