string permutation class