I'm finding programming various combinatorial searches
(connected to mathematical music theory) in a general purpose computer 
language tedious, so  I'd like pointers to computer platforms/environment purpose-built to enable such searches.  If the answer has the form "Maple can
do that" or "Mathematica can do that," then I'd appreciate pointers specific
enough to get me started.  

Within reason I would trade ease of specification against
any optimization of the search algorithm, but I'd feel grateful for speed if I could have that too.

Here's an example of a typical question; I'm really
hoping for an environment where I can specify such a search almost as succinctly
as I now explain it (I use terminology from mathematical music theory 
but define everything in purely mathematical terms):

Write $T$ for the set of complex $12$th roots of unity.

*Tetrachord* means a subset of $T$ of cardinality $4$. *Row* means a permutation of T.

Fix two distinct rotation classes of tetrachords, $a$ and $b$.  By definition row $R\in G_{a,b}$  if applying $R$ to the 24 tetrachords
in $a \cup b$ yields 24 tetrachords pairwise distinct up to isometry.  
Find $\bigcup_{a,b} G_{a,b}$.  

Thanks in advance for any help!!