from itertools import permutations from tqdm import tqdm # Список слов words_list = ['мама', 'мыла', 'раму', "А", "роза", "упала", "на", "лапу", "Азора", "У", "попа", "была", "собака"] # Создаем пустое множество для хранения уникальных возможных фраз phrases = set() # Генерируем все возможные перестановки слов разной длины for r in range(1, len(words_list)+1): for perm in tqdm(permutations(words_list, r)): phrase = ' '.join(perm) phrases.add(phrase) # Функция для проверки палиндрома def is_palindrome(s): s_cleaned = ''.join(s.split()).lower() # убираем пробелы и приводим к нижнему регистру return s_cleaned == s_cleaned[::-1] # Проверяем каждую фразу на палиндром palindromes = [] for p in tqdm(phrases): if is_palindrome(p): palindromes.append(p) # Выведем найденные палиндромы if palindromes: print("Следующие фразы являются палиндромами:") for p in palindromes: print(p) else: print("Ни одна из составленных фраз не является палиндромом.")