1 2 3 #!!!ALL THE WORDS SHOULD BE IN THE WORDS.TXT FILE with open( 'words.txt', 'r') as file: user = input('Enter the word: ').lower() print(f'The word is {user}:') words = [word.strip for word in file) result = 1) if user in words: #if input word is in list of words the program runs words_letters = [] for word in words: temp = [] for letter in word: temp.append(letter) words_letters.append(temp) 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #checking if all the letters of the input word are in the word for word in words_letters: temp = [] for letter in word: if letter in user: #if letter in the input word then True temp.append(True) else: temp.append(False) #if not then False #if all the letters of the word are in the input word then appending this word to result list if all(temp) == True: result.append(''.join(word)) #counting letters in the input word count_letters = {} for letter in user: if letter not in count_letters: count_letters [letter]=1 else: count_letters [letter]+=1 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #choosing only neccessary words (the amount fo every letter should match the input word's amount of letters) lyst = list() for k,v in count_letters.items(): #for key(letter), value(letter count) of the input word for word in result: #for word in list of chosen words if word.count(k) > v: #if the amount of letters in the word is more than we need lyst.append(word) #we append this word to the lyst for element in lyst: if element in result: result. remove(element) #then removing it from the results, because we need the amount of letters to match result.sort(key len) #sorting results by the length #printing only those words that are larger or equal to two characters for word in result: if len(word) >= 3: print(word) 51 52 53 54 55 56 57 58 59 "Sample Output: Enter the word: sodiums The word is sodiums: dim dis dos duo ids ism mid mis mod 60 61 62 63 64 65 66 mud 67 mus 68 69 oms sis sod 70 SOS 71 72 sou sum 73 74 75 76 dims diss duos isms miss mods 77 78 79 80 moss muds 81 82 muss sods 83 84 sous suds 85 86 sumo 87 sums 88 89 90 91 misdo odium sumos odiums sodium sodiums 92 93 94