Python - Как найти все возможные комбинации в массиве строк - PullRequest
0 голосов
/ 20 марта 2020

У меня есть строковый массив, такой как ['ab c', 'xy', 'd', 'mzqr']

Я бы хотел узнать, есть ли простое решение, чтобы найти все возможные комбинации символов Например:

  • axdm
  • aydm
  • aydz
  • a ...
  • bxdm
  • . ..

Спасибо!

1 Ответ

0 голосов
/ 20 марта 2020

Использование itertools.product:

from itertools import product

lst = ['abc', 'xy','d', 'mzqr']

list(map(''.join, product(*lst)))
# ['axdm', 'axdz', 'axdq', 'axdr', 'aydm', 'aydz', 'aydq', 'aydr', 
#  'bxdm', 'bxdz', 'bxdq', 'bxdr', 'bydm', 'bydz', 'bydq', 'bydr', 
#  'cxdm', 'cxdz', 'cxdq', 'cxdr', 'cydm', 'cydz', 'cydq', 'cydr']

product принимает любое число итераций (здесь ваш * -спакованный список строк) и производит их декартово произведение в форма ленивого итератора над tuples. Это использует str.join, чтобы превратить кортежи обратно в строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...