ncsub <- function(x)
{
   n <- length(x)
   a <- seq_len(n)
   seqlist <- list()
   for(i in 2:(n-1))
   {
      seqs <- combn(a, i)                                                          
      ok <- apply(seqs, 2, function(x) any(diff(x)!=1))                            
      newseqs <- unlist(apply(seqs[,ok], 2, function(x) list(x)), recursive=FALSE) 
      seqlist <- c(seqlist, newseqs)                                               
   }
   lapply(seqlist, function(index) x[index])
}

ncsub(1:4)
ncsub(letters[1:5])