class MorseDecrypt: alphabet = [ ["A", ".-"], ["B", "-..."], ["C", "-.-."], ["D", "-.."], ["E", "."], ["F", "..-."], ["G", "--."], ["H", "...."], ["I", ".."], ["J", ".---"], ["K", "-.-"], ["L", ".-.."], ["M", "--"], ["N", "-."], ["O", "---"], ["P", ".--."], ["Q", "--.-"], ["R", ".-."], ["S", "..."], ["T", "-"], ["U", "..-"], ["V", "...-"], ["W", ".--"], ["X", "-..-"], ["Y", "-.--"], ["Z", "--.."] ] def latin_to_morse(self, word: str): result = "" for letter in word: for latin, morse in self.alphabet: if letter == latin: result += morse return result def guess_morse_text(self, morse_text): return self.guess_chars(morse_text, '', []) def guess_chars(self, morse_text: str, plain_text="", char_guesses=None): if morse_text == "": char_guesses.append(plain_text) else: for latin, morse in self.alphabet: if morse == morse_text[0:len(morse)]: self.guess_chars(morse_text[len(morse):len(morse_text)], (plain_text + latin), char_guesses) return char_guesses