Dois algoritmos um para gerar todas as permutações e um para gerar todos
os subconjuntos. fonte: http://code.antonio081014.com/search/label/Java