спасибо, что дали мне возможность задать вопрос здесь.
Небольшая предыстория: мне нужно / я хочу найти наборы, которые удовлетворяют определенным условиям. Эти условия могут быть довольно сложными, но я надеюсь, что я смогу адаптироваться на основе простого примера.
Сначала давайте создадим пример:
from itertools import permutations
perm3 = list(permutations([1,2,3,4],3))
Мы создаем все перестановки длины 3 из этих чисел (например, (1,2,3), (1,3,2), ...). Теперь я хотел бы найти все подмножества, которые удовлетворяют определенному условию. Например, найдите подмножество всех перестановок, у которых «3» никогда не стоит на первом месте. Одно это должно быть возможно довольно легко:
first_neq_3 = [tuple for tuple in perm3 if tuple[0]!= 3]
Но, очевидно, это дает мне только одно подмножество, а именно - "самое большое". Теперь я хотел бы найти ВСЕ подмножества, которые удовлетворяют этому условию. Короткий пример, скажем, first_neq_3 = [(1,2,3), (2,1,3), (1,3,2), (2,3,1)] - тогда я бы тоже хотел найти [ (1,2,3), (2,1,3)] и т. Д.
Признаюсь, это довольно простая проблема для предоставленного примера, но я застрял, и это усложняется при более сложных условиях.