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))