| 1234567891011121314151617181920212223242526272829303132 |
- 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("Ни одна из составленных фраз не является палиндромом.")
|