How about adding a AlphabetManager.getCrossProductAlphabet(collection,boolean) where boolean is true if we want to instantiate all the symbols then put some upper limit (say 100000) before creating a sparsecrossproduct alphabet -Robin