# Start of script ---- # permutations and combinations n <- 10 k <- 3 choose(10,3) library(gtools) # R package with functions for permutations and combinations n <- 10 k <- 3 perm01 <- permutations(n, k) head(perm01) dim(perm01) combin01 <- combinations(n, k) head(combin01) dim(combin01) # All CA licence plates dim(permutations(26, 3, repeats.allowed = TRUE))[1]*dim(permutations(10, 3, repeats.allowed = TRUE))[1] 10*dim(permutations(26, 3, repeats.allowed = TRUE))[1]*dim(permutations(10, 3, repeats.allowed = TRUE))[1] # All CA licence plates using the Tidyverse in R library(tidyverse) letters numbers <- 0:9 numbers # Old plates LLLNNN CA_plates <- crossing(letters, letters, letters, numbers, numbers, numbers) %>% unite("letters...1", "letters...2", "letters...3", "numbers...4", "numbers...5", "numbers...6", col = plate, sep = "") dim(CA_plates) 26^3*10^3 # New plates NLLLNNN # Most likely will be too big for your available RAM CA_plates <- crossing(numbers, letters, letters, letters, numbers, numbers, numbers) %>% unite("numbers...1", "letters...2", "letters...3", "letters...4", "numbers...5", "numbers...6", "numbers...7", col = plate, sep = "") dim(CA_plates) 10*26^3*10^3 # End of script ----