Dear Steven, The prob package does this, too. (Please see the * fix below).
x <- c(0, 0, 1, 2, 2) library(prob) A <- permsn(x, 5) # with repeated columns B <- unique( data.frame( t(A) )) # no repeated rows The data frame B will have 56 rows and 5 columns. If you need the columns collapsed, then you can use the apply(B, 1, paste, sep = "", collapse = "") command that Johannes suggested. Details are in the prob package vignette, vignette("prob") I hope that this helps, Jay * fix: As it happens, your particular question helped to identify a bug in the current CRAN version of prob. Thank you! :-) Below is a fix until the updated version appears. permsn <- function (x, m) { require(combinat) if (is.numeric(x) && length(x) == 1 && x > 0 && trunc(x) == x) x <- seq(x) temp <- combn(x, m) if ( isTRUE(all.equal(m,1)) ) { P <- temp } else if (isTRUE(all.equal(m, length(x)))) { temp <- matrix(x, ncol = 1) P <- array(unlist(permn(temp[, 1])), dim = c(m, factorial(m))) } else { k <- dim(temp)[1] n <- dim(temp)[2] P <- array(unlist(permn(temp[, 1])), dim = c(k, factorial(k))) for (i in 2:n) { a <- temp[, i] perms <- array(unlist(permn(a)), dim = c(k, factorial(k))) P <- cbind(P, perms) } } return(P) } *************************************************** G. Jay Kerns, Ph.D. Assistant Professor / Statistics Coordinator Department of Mathematics & Statistics Youngstown State University Youngstown, OH 44555-0002 USA Office: 1035 Cushwa Hall Phone: (330) 941-3310 Office (voice mail) -3302 Department -3170 FAX E-mail: [EMAIL PROTECTED] http://www.cc.ysu.edu/~gjkerns/ ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.