Например, учитывая две буквы A и B, я хотел бы сгенерировать все строки длины n, имеющие x A и y B.Поиск всех последовательностей A, B таких, которые имеют заданное число каждого элемента
Хотелось бы, чтобы это было сделано эффективно. Один из способов, который я рассмотрел, - построить список x списка A, а затем вставить y B в список каждый возможный путь. Но вставка в список python является линейной, поэтому этот метод будет сосать по мере того, как список станет большим.
ЦЕЛЬ ПРОИЗВОДИТЕЛЬНОСТИ (это может быть необоснованным, но это is моя надежда): Генерировать все строки длины 20 с равными числами A и B через минуту меньше минуты.
EDIT: Предлагаются перестановки ('A' * x, 'B' * y). Хотя это не плохая идея, это много тратит. Если x = y = 4, вы должны генерировать строку «AAAABBBB» много раз. Есть ли лучший способ, который может генерировать каждую строку только один раз? Я пробовал код с эффектом set (перестановки ('A' * x, 'B' * y)), и он слишком медленный.
Красивая! Он работает при x = y = 10! Woohoo! – rjkaplan
Вопрос! Любая идея, как обобщить это на несколько букв? Например, что, если бы мы хотели, чтобы все строки A, B и C с x A, y B и d C? – rjkaplan
@rjkaplan: см. Редактирование. – Avaris