Permute todas as enumerações exclusivas de um vetor em R

Estou tentando encontrar uma função que permita todos osúnic permutações de um vetor, sem contar justaposições em subconjuntos do mesmo tipo de elemento. Por exemplo

dat <- c(1,0,3,4,1,0,0,3,0,4)

te

factorial(10)
> 3628800

ermutações possíveis, mas apenas10!/(2!*2!*4!*2!)

factorial(10)/(factorial(2)*factorial(2)*factorial(2)*factorial(4))
> 18900

ermutações únicas ao ignorar justaposições em subconjuntos do mesmo tipo de element

Consigo fazer isso usandounique() e apermn() função do pacotecombinat

unique( permn(dat) )

mas isso é computacionalmente muito caro, pois envolve enumerarn!, que pode ser uma ordem de magnitude mais permutações do que eu preciso. Existe uma maneira de fazer isso sem primeiro computarn!?

questionAnswers(5)

yourAnswerToTheQuestion