words = open("words_235886.txt").readlines() combinations = [] valids = [] letters = list(input()) n = len(letters) def dfs(cur_str): if cur_str in combinations: return combinations.append(cur_str) if len(cur_str) == n: return for letter in range(n): if letters[letter]: new_str = cur_str + letters[letter] letters[letter] = None dfs(new_str) letters[letter] = new_str[-1] dfs("") combinations.pop(0) for word in combinations: if (word + "\n") in words: valids.append(word) valids = sorted(valids, key=lambda x: x[0]) for valid in valids: print(valid)