Skip to content
Advertisement

How to skim itertools permutations?

Initial code:

from itertools import permutations
ListX = ["A","B","C","(",")","#"]
perm_iterator = list(permutations(ListX))
print(list(perm_iterator))

Result:

[('A', 'B', 'C', '(', ')', '#'), ('A', 'B', 'C', '(', '#', ')'), ('A', 'B', 'C', ')', '(', '#'), ('A', 'B', 'C', ')', '#', '('), ('A', 'B', 'C', '#', '(', ')'), ('A', 'B', 'C', '#', ')', '('), ('A', 'B', '(', 'C', ')', '#'), ('A', 'B', '(', 'C', '#', ')'), ('A', 'B', '(', ')', 'C', '#'), ('A', 'B', '(', ')', '#', 'C'), ('A', 'B', '(', '#', 'C', ')'), ('A', 'B', '(', '#', ')', 'C'), ('A', 'B', ')', 'C', '(', '#'), ('A', 'B', ')', 'C', '#', '('), ('A', 'B', ')', '(', 'C', '#'), ('A', 'B', ')', '(', '#', 'C'), ('A', 'B', ')', '#', 'C', '('), ('A', 'B', ')', '#', '(', 'C'), ('A', 'B', '#', 'C', '(', ')'), ('A', 'B', '#', 'C', ')', '('), ('A', 'B', '#', '(', 'C', ')'), ('A', 'B', '#', '(', ')', 'C'), ('A', 'B', '#', ')', 'C', '('), ('A', 'B', '#', ')', '(', 'C'), ('A', 'C', 'B', '(', ')', '#'), ('A', 'C', 'B', '(', '#', ')'), ('A', 'C', 'B', ')', '(', '#'), ('A', 'C', 'B', ')', '#', '('), ('A', 'C', 'B', '#', '(', ')'), ('A', 'C', 'B', '#', ')', '('), ('A', 'C', '(', 'B', ')', '#'), ('A', 'C', '(', 'B', '#', ')'), ('A', 'C', '(', ')', 'B', '#'), ('A', 'C', '(', ')', '#', 'B'), ('A', 'C', '(', '#', 'B', ')'), ('A', 'C', '(', '#', ')', 'B'), ('A', 'C', ')', 'B', '(', '#'), ('A', 'C', ')', 'B', '#', '('), ('A', 'C', ')', '(', 'B', '#'), ('A', 'C', ')', '(', '#', 'B'), ('A', 'C', ')', '#', 'B', '('), ('A', 'C', ')', '#', '(', 'B'), ('A', 'C', '#', 'B', '(', ')'), ('A', 'C', '#', 'B', ')', '('), ('A', 'C', '#', '(', 'B', ')'), ('A', 'C', '#', '(', ')', 'B'), ('A', 'C', '#', ')', 'B', '('), ('A', 'C', '#', ')', '(', 'B'), ('A', '(', 'B', 'C', ')', '#'), ('A', '(', 'B', 'C', '#', ')'), ('A', '(', 'B', ')', 'C', '#'), ('A', '(', 'B', ')', '#', 'C'), ('A', '(', 'B', '#', 'C', ')'), ('A', '(', 'B', '#', ')', 'C'), ('A', '(', 'C', 'B', ')', '#'), ('A', '(', 'C', 'B', '#', ')'), ('A', '(', 'C', ')', 'B', '#'), ('A', '(', 'C', ')', '#', 'B'), ('A', '(', 'C', '#', 'B', ')'), ('A', '(', 'C', '#', ')', 'B'), ('A', '(', ')', 'B', 'C', '#'), ('A', '(', ')', 'B', '#', 'C'), ('A', '(', ')', 'C', 'B', '#'), ('A', '(', ')', 'C', '#', 'B'), ('A', '(', ')', '#', 'B', 'C'), ('A', '(', ')', '#', 'C', 'B'), ('A', '(', '#', 'B', 'C', ')'), ('A', '(', '#', 'B', ')', 'C'), ('A', '(', '#', 'C', 'B', ')'), ('A', '(', '#', 'C', ')', 'B'), ('A', '(', '#', ')', 'B', 'C'), ('A', '(', '#', ')', 'C', 'B'), ('A', ')', 'B', 'C', '(', '#'), ('A', ')', 'B', 'C', '#', '('), ('A', ')', 'B', '(', 'C', '#'), ('A', ')', 'B', '(', '#', 'C'), ('A', ')', 'B', '#', 'C', '('), ('A', ')', 'B', '#', '(', 'C'), ('A', ')', 'C', 'B', '(', '#'), ('A', ')', 'C', 'B', '#', '('), ('A', ')', 'C', '(', 'B', '#'), ('A', ')', 'C', '(', '#', 'B'), ('A', ')', 'C', '#', 'B', '('), ('A', ')', 'C', '#', '(', 'B'), ('A', ')', '(', 'B', 'C', '#'), ('A', ')', '(', 'B', '#', 'C'), ('A', ')', '(', 'C', 'B', '#'), ('A', ')', '(', 'C', '#', 'B'), ('A', ')', '(', '#', 'B', 'C'), ('A', ')', '(', '#', 'C', 'B'), ('A', ')', '#', 'B', 'C', '('), ('A', ')', '#', 'B', '(', 'C'), ('A', ')', '#', 'C', 'B', '('), ('A', ')', '#', 'C', '(', 'B'), ('A', ')', '#', '(', 'B', 'C'), ('A', ')', '#', '(', 'C', 'B'), ('A', '#', 'B', 'C', '(', ')'), ('A', '#', 'B', 'C', ')', '('), ('A', '#', 'B', '(', 'C', ')'), ('A', '#', 'B', '(', ')', 'C'), ('A', '#', 'B', ')', 'C', '('), ('A', '#', 'B', ')', '(', 'C'), ('A', '#', 'C', 'B', '(', ')'), ('A', '#', 'C', 'B', ')', '('), ('A', '#', 'C', '(', 'B', ')'), ('A', '#', 'C', '(', ')', 'B'), ('A', '#', 'C', ')', 'B', '('), ('A', '#', 'C', ')', '(', 'B'), ('A', '#', '(', 'B', 'C', ')'), ('A', '#', '(', 'B', ')', 'C'), ('A', '#', '(', 'C', 'B', ')'), ('A', '#', '(', 'C', ')', 'B'), ('A', '#', '(', ')', 'B', 'C'), ('A', '#', '(', ')', 'C', 'B'), ('A', '#', ')', 'B', 'C', '('), ('A', '#', ')', 'B', '(', 'C'), ('A', '#', ')', 'C', 'B', '('), ('A', '#', ')', 'C', '(', 'B'), ('A', '#', ')', '(', 'B', 'C'), ('A', '#', ')', '(', 'C', 'B'), ('B', 'A', 'C', '(', ')', '#'), ('B', 'A', 'C', '(', '#', ')'), ('B', 'A', 'C', ')', '(', '#'), ('B', 'A', 'C', ')', '#', '('), ('B', 'A', 'C', '#', '(', ')'), ('B', 'A', 'C', '#', ')', '('), ('B', 'A', '(', 'C', ')', '#'), ('B', 'A', '(', 'C', '#', ')'), ('B', 'A', '(', ')', 'C', '#'), ('B', 'A', '(', ')', '#', 'C'), ('B', 'A', '(', '#', 'C', ')'), ('B', 'A', '(', '#', ')', 'C'), ('B', 'A', ')', 'C', '(', '#'), ('B', 'A', ')', 'C', '#', '('), ('B', 'A', ')', '(', 'C', '#'), ('B', 'A', ')', '(', '#', 'C'), ('B', 'A', ')', '#', 'C', '('), ('B', 'A', ')', '#', '(', 'C'), ('B', 'A', '#', 'C', '(', ')'), ('B', 'A', '#', 'C', ')', '('), ('B', 'A', '#', '(', 'C', ')'), ('B', 'A', '#', '(', ')', 'C'), ('B', 'A', '#', ')', 'C', '('), ('B', 'A', '#', ')', '(', 'C'), ('B', 'C', 'A', '(', ')', '#'), ('B', 'C', 'A', '(', '#', ')'), ('B', 'C', 'A', ')', '(', '#'), ('B', 'C', 'A', ')', '#', '('), ('B', 'C', 'A', '#', '(', ')'), ('B', 'C', 'A', '#', ')', '('), ('B', 'C', '(', 'A', ')', '#'), ('B', 'C', '(', 'A', '#', ')'), ('B', 'C', '(', ')', 'A', '#'), ('B', 'C', '(', ')', '#', 'A'), ('B', 'C', '(', '#', 'A', ')'), ('B', 'C', '(', '#', ')', 'A'), ('B', 'C', ')', 'A', '(', '#'), ('B', 'C', ')', 'A', '#', '('), ('B', 'C', ')', '(', 'A', '#'), ('B', 'C', ')', '(', '#', 'A'), ('B', 'C', ')', '#', 'A', '('), ('B', 'C', ')', '#', '(', 'A'), ('B', 'C', '#', 'A', '(', ')'), ('B', 'C', '#', 'A', ')', '('), ('B', 'C', '#', '(', 'A', ')'), ('B', 'C', '#', '(', ')', 'A'), ('B', 'C', '#', ')', 'A', '('), ('B', 'C', '#', ')', '(', 'A'), ('B', '(', 'A', 'C', ')', '#'), ('B', '(', 'A', 'C', '#', ')'), ('B', '(', 'A', ')', 'C', '#'), ('B', '(', 'A', ')', '#', 'C'), ('B', '(', 'A', '#', 'C', ')'), ('B', '(', 'A', '#', ')', 'C'), ('B', '(', 'C', 'A', ')', '#'), ('B', '(', 'C', 'A', '#', ')'), ('B', '(', 'C', ')', 'A', '#'), ('B', '(', 'C', ')', '#', 'A'), ('B', '(', 'C', '#', 'A', ')'), ('B', '(', 'C', '#', ')', 'A'),]

Now I want to remove everything starting with “)” or “#”

and ends whit “(” or “#” and contenin “(“,”#”,”)”

ListY=[dev for dev in perm_iterator if not dev[0].startswith(("#"))]
LystX=[dev for dev in ListY if not dev[-1].startswith(("#"))]
LystZ=[dev for dev in LystX if not dev[0].startswith((")"))] #start with
List_clened=[dev for dev in LystZ if not dev[-1].startswith(("("))] #end 

With

[('A', 'B', 'C', '(', '#', ')'), ('A', 'B', 'C', '#', '(', ')'), ('A', 'B', '(', 'C', '#', ')'), ('A', 'B', '(', ')', '#', 'C'), ('A', 'B', '(', '#', 'C', ')'), ('A', 'B', '(', '#', ')', 'C'), ('A', 'B', ')', '(', '#', 'C'), ('A', 'B', ')', '#', '(', 'C'), ('A', 'B', '#', 'C', '(', ')'), ('A', 'B', '#', '(', 'C', ')'), ('A', 'B', '#', '(', ')', 'C'), ('A', 'B', '#', ')', '(', 'C'), ('A', 'C', 'B', '(', '#', ')'), ('A', 'C', 'B', '#', '(', ')'), ('A', 'C', '(', 'B', '#', ')'), ('A', 'C', '(', ')', '#', 'B'), ('A', 'C', '(', '#', 'B', ')'), ('A', 'C', '(', '#', ')', 'B'), ('A', 'C', ')', '(', '#', 'B'), ('A', 'C', ')', '#', '(', 'B'), ('A', 'C', '#', 'B', '(', ')'), ('A', 'C', '#', '(', 'B', ')'), ('A', 'C', '#', '(', ')', 'B'), ('A', 'C', '#', ')', '(', 'B'), ('A', '(', 'B', 'C', '#', ')'), ('A', '(', 'B', ')', '#', 'C'), ('A', '(', 'B', '#', 'C', ')'), ('A', '(', 'B', '#', ')', 'C'), ('A', '(', 'C', 'B', '#', ')'), ('A', '(', 'C', ')', '#', 'B'), ('A', '(', 'C', '#', 'B', ')'), ('A', '(', 'C', '#', ')', 'B'), ('A', '(', ')', 'B', '#', 'C'), ('A', '(', ')', 'C', '#', 'B'), ('A', '(', ')', '#', 'B', 'C'), ('A', '(', ')', '#', 'C', 'B'), ('A', '(', '#', 'B', 'C', ')'), ('A', '(', '#', 'B', ')', 'C'), ('A', '(', '#', 'C', 'B', ')'), ('A', '(', '#', 'C', ')', 'B'), ('A', '(', '#', ')', 'B', 'C'), ('A', '(', '#', ')', 'C', 'B'), ('A', ')', 'B', '(', '#', 'C'), ('A', ')', 'B', '#', '(', 'C'), ('A', ')', 'C', '(', '#', 'B'), ('A', ')', 'C', '#', '(', 'B'), ('A', ')', '(', 'B', '#', 'C'), ('A', ')', '(', 'C', '#', 'B'), ('A', ')', '(', '#', 'B', 'C'), ('A', ')', '(', '#', 'C', 'B'), ('A', ')', '#', 'B', '(', 'C'), ('A', ')', '#', 'C', '(', 'B'), ('A', ')', '#', '(', 'B', 'C'), ('A', ')', '#', '(', 'C', 'B'), ('A', '#', 'B', 'C', '(', ')'), ('A', '#', 'B', '(', 'C', ')'), ('A', '#', 'B', '(', ')', 'C'), ('A', '#', 'B', ')', '(', 'C'), ('A', '#', 'C', 'B', '(', ')'), ('A', '#', 'C', '(', 'B', ')'), ('A', '#', 'C', '(', ')', 'B'), ('A', '#', 'C', ')', '(', 'B'), ('A', '#', '(', 'B', 'C', ')'), ('A', '#', '(', 'B', ')', 'C'), ('A', '#', '(', 'C', 'B', ')'), ('A', '#', '(', 'C', ')', 'B'), ('A', '#', '(', ')', 'B', 'C'), ('A', '#', '(', ')', 'C', 'B'), ('A', '#', ')', 'B', '(', 'C'), ('A', '#', ')', 'C', '(', 'B'), ('A', '#', ')', '(', 'B', 'C'), ('A', '#', ')', '(', 'C', 'B'), ('B', 'A', 'C', '(', '#', ')'), ('B', 'A', 'C', '#', '(', ')'), ('B', 'A', '(', 'C', '#', ')'), ('B', 'A', '(', ')', '#', 'C'), ('B', 'A', '(', '#', 'C', ')'), ('B', 'A', '(', '#', ')', 'C'), ('B', 'A', ')', '(', '#', 'C'), ('B', 'A', ')', '#', '(', 'C'), ('B', 'A', '#', 'C', '(', ')'), ('B', 'A', '#', '(', 'C', ')'), ('B', 'A', '#', '(', ')', 'C'), ('B', 'A', '#', ')', '(', 'C'), ('B', 'C', 'A', '(', '#', ')'), ('B', 'C', 'A', '#', '(', ')'), ('B', 'C', '(', 'A', '#', ')'), ('B', 'C', '(', ')', '#', 'A'), ('B', 'C', '(', '#', 'A', ')'), ('B', 'C', '(', '#', ')', 'A'), ('B', 'C', ')', '(', '#', 'A'), ('B', 'C', ')', '#', '(', 'A'), ('B', 'C', '#', 'A', '(', ')'), ('B', 'C', '#', '(', 'A', ')'), ('B', 'C', '#', '(', ')', 'A'), ('B', 'C', '#', ')', '(', 'A'), ('B', '(', 'A', 'C', '#', ')'), ('B', '(', 'A', ')', '#', 'C'), ('B', '(', 'A', '#', 'C', ')'), ('B', '(', 'A', '#', ')', 'C'), ('B', '(', 'C', 'A', '#', ')'), ('B', '(', 'C', ')', '#', 'A'), ('B', '(', 'C', '#', 'A', ')'), ('B', '(', 'C', '#', ')', 'A'), ('B', '(', ')', 'A', '#', 'C'), ('B', '(', ')', 'C', '#', 'A'), ('B', '(', ')', '#', 'A', 'C'), ('B', '(', ')', '#', 'C', 'A'), ('B', '(', '#', 'A', 'C', ')'), ('B', '(', '#', 'A', ')', 'C'), ('B', '(', '#', 'C', 'A', ')'), ('B', '(', '#', 'C', ')', 'A'), ('B', '(', '#', ')', 'A', 'C'), ('B', '(', '#', ')', 'C', 'A'), ('B', ')', 'A', '(', '#', 'C'), ('B', ')', 'A', '#', '(', 'C'), ('B', ')', 'C', '(', '#', 'A'), ('B', ')', 'C', '#', '(', 'A'), ('B', ')', '(', 'A', '#', 'C'), ('B', ')', '(', 'C', '#', 'A'), ('B', ')', '(', '#', 'A', 'C'), ('B', ')', '(', '#', 'C', 'A'), ('B', ')', '#', 'A', '(', 'C'), ('B', ')', '#', 'C', '(', 'A'), ('B', ')', '#', '(', 'A', 'C'), ('B', ')', '#', '(', 'C', 'A'), ('B', '#', 'A', 'C', '(', ')'), ('B', '#', 'A', '(', 'C', ')'), ('B', '#', 'A', '(', ')', 'C'), ('B', '#', 'A', ')', '(', 'C'), ('B', '#', 'C', 'A', '(', ')'), ('B', '#', 'C', '(', 'A', ')'), ('B', '#', 'C', '(', ')', 'A'), ('B', '#', 'C', ')', '(', 'A'), ('B', '#', '(', 'A', 'C', ')'), ('B', '#', '(', 'A', ')', 'C'), ('B', '#', '(', 'C', 'A', ')'), ('B', '#', '(', 'C', ')', 'A'), ('B', '#', '(', ')', 'A', 'C'), ('B', '#', '(', ')', 'C', 'A'), ('B', '#', ')', 'A', '(', 'C'), ('B', '#', ')', 'C', '(', 'A'), ('B', '#', ')', '(', 'A', 'C'), ('B', '#', ')', '(', 'C', 'A'), ('C', 'A', 'B', '(', '#', ')'), ('C', 'A', 'B', '#', '(', ')'), ('C', 'A', '(', 'B', '#', ')'), ('C', 'A', '(', ')', '#', 'B'), ('C', 'A', '(', '#', 'B', ')'), ('C', 'A', '(', '#', ')', 'B'), ('C', 'A', ')', '(', '#', 'B'), ('C', 'A', ')', '#', '(', 'B'), ('C', 'A', '#', 'B', '(', ')'), ('C', 'A', '#', '(', 'B', ')'), ('C', 'A', '#', '(', ')', 'B'), ('C', 'A', '#', ')', '(', 'B'), ('C', 'B', 'A', '(', '#', ')'), ('C', 'B', 'A', '#', '(', ')'), ('C', 'B', '(', 'A', '#', ')'), ('C', 'B', '(', ')', '#', 'A'), ('C', 'B', '(', '#', 'A', ')'), ('C', 'B', '(', '#', ')', 'A'), ('C', 'B', ')', '(', '#', 'A'), ('C', 'B', ')', '#', '(', 'A'), ('C', 'B', '#', 'A', '(', ')'), ('C', 'B', '#', '(', 'A', ')'), ('C', 'B', '#', '(', ')', 'A'), ('C', 'B', '#', ')', '(', 'A'), ('C', '(', 'A', 'B', '#', ')'), ('C', '(', 'A', ')', '#', 'B'), ('C', '(', 'A', '#', 'B', ')'), ('C', '(', 'A', '#', ')', 'B'), ('C', '(', 'B', 'A', '#', ')'), ('C', '(', 'B', ')', '#', 'A'), ('C', '(', 'B', '#', 'A', ')'), ('C', '(', 'B', '#', ')', 'A'), ('C', '(', ')', 'A', '#', 'B'), ('C', '(', ')', 'B', '#', 'A'), ('C', '(', ')', '#', 'A', 'B'), ('C', '(', ')', '#', 'B', 'A'), ('C', '(', '#', 'A', 'B', ')'), ('C', '(', '#', 'A', ')', 'B'), ('C', '(', '#', 'B', 'A', ')'), ('C', '(', '#', 'B', ')', 'A'), ('C', '(', '#', ')', 'A', 'B'), ('C', '(', '#', ')', 'B', 'A'), ('C', ')', 'A', '(', '#', 'B'), ('C', ')', 'A', '#', '(', 'B'), ('C', ')', 'B', '(', '#', 'A'), ('C', ')', 'B', '#', '(', 'A'), ('C', ')', '(', 'A', '#', 'B'), ('C', ')', '(', 'B', '#', 'A'), ('C', ')', '(', '#', 'A', 'B'), ('C', ')', '(', '#', 'B', 'A'), ('C', ')', '#', 'A', '(', 'B'), ('C', ')', '#', 'B', '(', 'A'), ('C', ')', '#', '(', 'A', 'B'), ('C', ')', '#', '(', 'B', 'A'), ('C', '#', 'A', 'B', '(', ')'), ('C', '#', 'A', '(', 'B', ')'), ('C', '#', 'A', '(', ')', 'B'), ('C', '#', 'A', ')', '(', 'B'), ('C', '#', 'B', 'A', '(', ')'), ('C', '#', 'B', '(', 'A', ')'), ('C', '#', 'B', '(', ')', 'A'), ('C', '#', 'B', ')', '(', 'A'), ('C', '#', '(', 'A', 'B', ')'), ('C', '#', '(', 'A', ')', 'B'), ('C', '#', '(', 'B', 'A', ')'), ('C', '#', '(', 'B', ')', 'A'), ('C', '#', '(', ')', 'A', 'B'), ('C', '#', '(', ')', 'B', 'A'), ('C', '#', ')', 'A', '(', 'B'), ('C', '#', ')', 'B', '(', 'A'), ('C', '#', ')', '(', 'A', 'B'), ('C', '#', ')', '(', 'B', 'A'), ('(', 'A', 'B', 'C', '#', ')'), ('(', 'A', 'B', ')', '#', 'C'), ('(', 'A', 'B', '#', 'C', ')'), ('(', 'A', 'B', '#', ')', 'C'), ('(', 'A', 'C', 'B', '#', ')'), ('(', 'A', 'C', ')', '#', 'B'), ('(', 'A', 'C', '#', 'B', ')'), ('(', 'A', 'C', '#', ')', 'B'), ('(', 'A', ')', 'B', '#', 'C'), ('(', 'A', ')', 'C', '#', 'B'), ('(', 'A', ')', '#', 'B', 'C'), ('(', 'A', ')', '#', 'C', 'B'), ('(', 'A', '#', 'B', 'C', ')'), ('(', 'A', '#', 'B', ')', 'C'), ('(', 'A', '#', 'C', 'B', ')'), ('(', 'A', '#', 'C', ')', 'B'), ('(', 'A', '#', ')', 'B', 'C'), ('(', 'A', '#', ')', 'C', 'B'), ('(', 'B', 'A', 'C', '#', ')'), ('(', 'B', 'A', ')', '#', 'C'), ('(', 'B', 'A', '#', 'C', ')'), ('(', 'B', 'A', '#', ')', 'C'), ('(', 'B', 'C', 'A', '#', ')'), ('(', 'B', 'C', ')', '#', 'A'), ('(', 'B', 'C', '#', 'A', ')'), ('(', 'B', 'C', '#', ')', 'A'), ('(', 'B', ')', 'A', '#', 'C'), ('(', 'B', ')', 'C', '#', 'A'), ('(', 'B', ')', '#', 'A', 'C'), ('(', 'B', ')', '#', 'C', 'A'), ('(', 'B', '#', 'A', 'C', ')'), ('(', 'B', '#', 'A', ')', 'C'), ('(', 'B', '#', 'C', 'A', ')'), ('(', 'B', '#', 'C', ')', 'A'), ('(', 'B', '#', ')', 'A', 'C'), ('(', 'B', '#', ')', 'C', 'A'), ('(', 'C', 'A', 'B', '#', ')'), ('(', 'C', 'A', ')', '#', 'B'), ('(', 'C', 'A', '#', 'B', ')'), ('(', 'C', 'A', '#', ')', 'B'), ('(', 'C', 'B', 'A', '#', ')'), ('(', 'C', 'B', ')', '#', 'A'), ('(', 'C', 'B', '#', 'A', ')'), ('(', 'C', 'B', '#', ')', 'A'), ('(', 'C', ')', 'A', '#', 'B'), ('(', 'C', ')', 'B', '#', 'A'), ('(', 'C', ')', '#', 'A', 'B'), ('(', 'C', ')', '#', 'B', 'A'), ('(', 'C', '#', 'A', 'B', ')'), ('(', 'C', '#', 'A', ')', 'B'), ('(', 'C', '#', 'B', 'A', ')'), ('(', 'C', '#', 'B', ')', 'A'), ('(', 'C', '#', ')', 'A', 'B'), ('(', 'C', '#', ')', 'B', 'A'), ('(', ')', 'A', 'B', '#', 'C'), ('(', ')', 'A', 'C', '#', 'B'), ('(', ')', 'A', '#', 'B', 'C'), ('(', ')', 'A', '#', 'C', 'B'), ('(', ')', 'B', 'A', '#', 'C'), ('(', ')', 'B', 'C', '#', 'A'), ('(', ')', 'B', '#', 'A', 'C'), ('(', ')', 'B', '#', 'C', 'A'), ('(', ')', 'C', 'A', '#', 'B'), ('(', ')', 'C', 'B', '#', 'A'), ('(', ')', 'C', '#', 'A', 'B'), ('(', ')', 'C', '#', 'B', 'A'), ('(', ')', '#', 'A', 'B', 'C'), ('(', ')', '#', 'A', 'C', 'B'), ('(', ')', '#', 'B', 'A', 'C'), ('(', ')', '#', 'B', 'C', 'A'), ('(', ')', '#', 'C', 'A', 'B'), ('(', ')', '#', 'C', 'B', 'A'), ('(', '#', 'A', 'B', 'C', ')'), ('(', '#', 'A', 'B', ')', 'C'), ('(', '#', 'A', 'C', 'B', ')'), ('(', '#', 'A', 'C', ')', 'B'), ('(', '#', 'A', ')', 'B', 'C'), ('(', '#', 'A', ')', 'C', 'B'), ('(', '#', 'B', 'A', 'C', ')'), ('(', '#', 'B', 'A', ')', 'C'), ('(', '#', 'B', 'C', 'A', ')'), ('(', '#', 'B', 'C', ')', 'A'), ('(', '#', 'B', ')', 'A', 'C'), ('(', '#', 'B', ')', 'C', 'A'), ('(', '#', 'C', 'A', 'B', ')'), ('(', '#', 'C', 'A', ')', 'B'), ('(', '#', 'C', 'B', 'A', ')'), ('(', '#', 'C', 'B', ')', 'A'), ('(', '#', 'C', ')', 'A', 'B'), ('(', '#', 'C', ')', 'B', 'A'), ('(', '#', ')', 'A', 'B', 'C'), ('(', '#', ')', 'A', 'C', 'B'), ('(', '#', ')', 'B', 'A', 'C'), ('(', '#', ')', 'B', 'C', 'A'), ('(', '#', ')', 'C', 'A', 'B'), ('(', '#', ')', 'C', 'B', 'A')]

Now the list is half in size “9k chart from 20k”.

ps: Now, how do i remove (‘A’, ‘B’, ‘C’, ‘(‘, ‘)’, ‘#’) this

I need to do this operations while the “iterator iterates” so I don’t have a big memory dump… The case with 12 numbers reach 300mb really quickly so I need to eliminate this combination from the pool of possible combinations.

To finally get:

[(("A","#","B"),"C"),("A","#","(","B",")","C"),("A","(","B",")","#","C"),("(""A",")","B","#","C")] etc.

Without any “(“,”#” and “#”,”)”.

How can I get this result efficiently?

Advertisement

Answer

I think is not necessary to build the first list (it will be oversized). You can produce filtered list in one step.

from itertools import permutations
ListX=["A","B","C","(",")","#"]

flt = lambda tpl: not tpl[0] in (')','#')

clean_list = [x for x in permutations(ListX) if flt(x)]

HIT

If you need to iterate over values, it can be done using another iterator in order to step over each record without allorate memory for all:

iter_on = (x for x in permutations(ListX) if flt(x))
Advertisement