Этот вопрос вдохновлен: Generating a list of repetitions regardless of the order и его принято отвечать: https://stackoverflow.com/a/20336020/1463143Концептуальное: Collect «синонимы» из списка «слов»
Проблема в этом вопросе не сформулирована должным образом, пожалуйста, голые со мной.
Здесь «алфавит» представляет собой любой набор букв, например. '012' или 'EDCRFV'
«слова» получены путем декартового произведения над алфавитом. Мы должны указать n
для получения n-буквенных слов. Пример:
from itertools import product
alphabet = '012'
wordLen = 3
wordList = [''.join(letter) for letter in product(alphabet,repeat=wordLen)]
print wordList
, который дает:
['000', '001', '002', '010', '011', '012', '020', '021', '022', '100', '101', '102', '110', '111', '112', '120', '121', '122', '200', '201', '202', '210', '211', '212', '220', '221', '222']
"синонимом" получается ... э-э ... если бы я только мог сформулировать это ...
эти списки содержат все возможные «синонимы» в рамках wordList
:
['000',
'111',
'222']
['001',
'002',
'110',
'112',
'220',
'221']
['010',
'020',
'101',
'121',
'202',
'212']
['011',
'022',
'100',
'122',
'200',
'211']
['012',
'021',
'102',
'120',
'201',
'210']
к сожалению, я не могу выразить, как я получил а, перечислить списки «синонимов». Я хотел бы сделать что-то, как указано выше, для произвольного алфавита, образующего n-буквенные слова.
* не в состоянии сформулировать, как я получил вышеуказанные списки «синонимов» *. К сожалению, мы тоже. Без каких-либо правил о том, как вы получили эти синонимы, мы остаемся в темноте, чтобы догадываться о соответствующих правилах. Я определенно не вижу никакой картины между синонимами. –
@MartijnPieters Первый случай, все такие же, второй случай Первые два одинаковы, третий случай первый и последний одинаковы, 4-й случай второй и третий одинаковы, последний случай все разный – thefourtheye
@thefourtheye: Действительно, этот шаблон кажется подходящим. Однако ОР должен был сформулировать это сам. –