Extension of base::combn() to get all permutations of group size(s) m
Source:R/combn_perm.R
combn_perm.Rd
A few notes on the math and calculating possible options: https://math.stackexchange.com/a/2339815
Examples
combn_perm(1:3, 1)
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>
combn_perm(1:4, 2)
#> [[1]]
#> [1] 1 2
#>
#> [[2]]
#> [1] 1 3
#>
#> [[3]]
#> [1] 1 4
#>
#> [[4]]
#> [1] 2 3
#>
#> [[5]]
#> [1] 2 4
#>
#> [[6]]
#> [1] 3 4
#>
combn_perm(1:4, c(1, 2, 4), perm = TRUE)
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 4
#>
#> [[5]]
#> [1] 1 2
#>
#> [[6]]
#> [1] 1 3
#>
#> [[7]]
#> [1] 1 4
#>
#> [[8]]
#> [1] 2 3
#>
#> [[9]]
#> [1] 2 4
#>
#> [[10]]
#> [1] 3 4
#>
#> [[11]]
#> [1] 1 2 3
#>
#> [[12]]
#> [1] 1 2 4
#>
#> [[13]]
#> [1] 1 3 4
#>
#> [[14]]
#> [1] 2 3 4
#>
#> [[15]]
#> [1] 1 2 3 4
#>
combn_perm(1:10, c(1, 2, 4), perm = FALSE)
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 4
#>
#> [[5]]
#> [1] 5
#>
#> [[6]]
#> [1] 6
#>
#> [[7]]
#> [1] 7
#>
#> [[8]]
#> [1] 8
#>
#> [[9]]
#> [1] 9
#>
#> [[10]]
#> [1] 10
#>
#> [[11]]
#> [1] 1 2
#>
#> [[12]]
#> [1] 1 3
#>
#> [[13]]
#> [1] 1 4
#>
#> [[14]]
#> [1] 1 5
#>
#> [[15]]
#> [1] 1 6
#>
#> [[16]]
#> [1] 1 7
#>
#> [[17]]
#> [1] 1 8
#>
#> [[18]]
#> [1] 1 9
#>
#> [[19]]
#> [1] 1 10
#>
#> [[20]]
#> [1] 2 3
#>
#> [[21]]
#> [1] 2 4
#>
#> [[22]]
#> [1] 2 5
#>
#> [[23]]
#> [1] 2 6
#>
#> [[24]]
#> [1] 2 7
#>
#> [[25]]
#> [1] 2 8
#>
#> [[26]]
#> [1] 2 9
#>
#> [[27]]
#> [1] 2 10
#>
#> [[28]]
#> [1] 3 4
#>
#> [[29]]
#> [1] 3 5
#>
#> [[30]]
#> [1] 3 6
#>
#> [[31]]
#> [1] 3 7
#>
#> [[32]]
#> [1] 3 8
#>
#> [[33]]
#> [1] 3 9
#>
#> [[34]]
#> [1] 3 10
#>
#> [[35]]
#> [1] 4 5
#>
#> [[36]]
#> [1] 4 6
#>
#> [[37]]
#> [1] 4 7
#>
#> [[38]]
#> [1] 4 8
#>
#> [[39]]
#> [1] 4 9
#>
#> [[40]]
#> [1] 4 10
#>
#> [[41]]
#> [1] 5 6
#>
#> [[42]]
#> [1] 5 7
#>
#> [[43]]
#> [1] 5 8
#>
#> [[44]]
#> [1] 5 9
#>
#> [[45]]
#> [1] 5 10
#>
#> [[46]]
#> [1] 6 7
#>
#> [[47]]
#> [1] 6 8
#>
#> [[48]]
#> [1] 6 9
#>
#> [[49]]
#> [1] 6 10
#>
#> [[50]]
#> [1] 7 8
#>
#> [[51]]
#> [1] 7 9
#>
#> [[52]]
#> [1] 7 10
#>
#> [[53]]
#> [1] 8 9
#>
#> [[54]]
#> [1] 8 10
#>
#> [[55]]
#> [1] 9 10
#>
#> [[56]]
#> [1] 1 2 3 4
#>
#> [[57]]
#> [1] 1 2 3 5
#>
#> [[58]]
#> [1] 1 2 3 6
#>
#> [[59]]
#> [1] 1 2 3 7
#>
#> [[60]]
#> [1] 1 2 3 8
#>
#> [[61]]
#> [1] 1 2 3 9
#>
#> [[62]]
#> [1] 1 2 3 10
#>
#> [[63]]
#> [1] 1 2 4 5
#>
#> [[64]]
#> [1] 1 2 4 6
#>
#> [[65]]
#> [1] 1 2 4 7
#>
#> [[66]]
#> [1] 1 2 4 8
#>
#> [[67]]
#> [1] 1 2 4 9
#>
#> [[68]]
#> [1] 1 2 4 10
#>
#> [[69]]
#> [1] 1 2 5 6
#>
#> [[70]]
#> [1] 1 2 5 7
#>
#> [[71]]
#> [1] 1 2 5 8
#>
#> [[72]]
#> [1] 1 2 5 9
#>
#> [[73]]
#> [1] 1 2 5 10
#>
#> [[74]]
#> [1] 1 2 6 7
#>
#> [[75]]
#> [1] 1 2 6 8
#>
#> [[76]]
#> [1] 1 2 6 9
#>
#> [[77]]
#> [1] 1 2 6 10
#>
#> [[78]]
#> [1] 1 2 7 8
#>
#> [[79]]
#> [1] 1 2 7 9
#>
#> [[80]]
#> [1] 1 2 7 10
#>
#> [[81]]
#> [1] 1 2 8 9
#>
#> [[82]]
#> [1] 1 2 8 10
#>
#> [[83]]
#> [1] 1 2 9 10
#>
#> [[84]]
#> [1] 1 3 4 5
#>
#> [[85]]
#> [1] 1 3 4 6
#>
#> [[86]]
#> [1] 1 3 4 7
#>
#> [[87]]
#> [1] 1 3 4 8
#>
#> [[88]]
#> [1] 1 3 4 9
#>
#> [[89]]
#> [1] 1 3 4 10
#>
#> [[90]]
#> [1] 1 3 5 6
#>
#> [[91]]
#> [1] 1 3 5 7
#>
#> [[92]]
#> [1] 1 3 5 8
#>
#> [[93]]
#> [1] 1 3 5 9
#>
#> [[94]]
#> [1] 1 3 5 10
#>
#> [[95]]
#> [1] 1 3 6 7
#>
#> [[96]]
#> [1] 1 3 6 8
#>
#> [[97]]
#> [1] 1 3 6 9
#>
#> [[98]]
#> [1] 1 3 6 10
#>
#> [[99]]
#> [1] 1 3 7 8
#>
#> [[100]]
#> [1] 1 3 7 9
#>
#> [[101]]
#> [1] 1 3 7 10
#>
#> [[102]]
#> [1] 1 3 8 9
#>
#> [[103]]
#> [1] 1 3 8 10
#>
#> [[104]]
#> [1] 1 3 9 10
#>
#> [[105]]
#> [1] 1 4 5 6
#>
#> [[106]]
#> [1] 1 4 5 7
#>
#> [[107]]
#> [1] 1 4 5 8
#>
#> [[108]]
#> [1] 1 4 5 9
#>
#> [[109]]
#> [1] 1 4 5 10
#>
#> [[110]]
#> [1] 1 4 6 7
#>
#> [[111]]
#> [1] 1 4 6 8
#>
#> [[112]]
#> [1] 1 4 6 9
#>
#> [[113]]
#> [1] 1 4 6 10
#>
#> [[114]]
#> [1] 1 4 7 8
#>
#> [[115]]
#> [1] 1 4 7 9
#>
#> [[116]]
#> [1] 1 4 7 10
#>
#> [[117]]
#> [1] 1 4 8 9
#>
#> [[118]]
#> [1] 1 4 8 10
#>
#> [[119]]
#> [1] 1 4 9 10
#>
#> [[120]]
#> [1] 1 5 6 7
#>
#> [[121]]
#> [1] 1 5 6 8
#>
#> [[122]]
#> [1] 1 5 6 9
#>
#> [[123]]
#> [1] 1 5 6 10
#>
#> [[124]]
#> [1] 1 5 7 8
#>
#> [[125]]
#> [1] 1 5 7 9
#>
#> [[126]]
#> [1] 1 5 7 10
#>
#> [[127]]
#> [1] 1 5 8 9
#>
#> [[128]]
#> [1] 1 5 8 10
#>
#> [[129]]
#> [1] 1 5 9 10
#>
#> [[130]]
#> [1] 1 6 7 8
#>
#> [[131]]
#> [1] 1 6 7 9
#>
#> [[132]]
#> [1] 1 6 7 10
#>
#> [[133]]
#> [1] 1 6 8 9
#>
#> [[134]]
#> [1] 1 6 8 10
#>
#> [[135]]
#> [1] 1 6 9 10
#>
#> [[136]]
#> [1] 1 7 8 9
#>
#> [[137]]
#> [1] 1 7 8 10
#>
#> [[138]]
#> [1] 1 7 9 10
#>
#> [[139]]
#> [1] 1 8 9 10
#>
#> [[140]]
#> [1] 2 3 4 5
#>
#> [[141]]
#> [1] 2 3 4 6
#>
#> [[142]]
#> [1] 2 3 4 7
#>
#> [[143]]
#> [1] 2 3 4 8
#>
#> [[144]]
#> [1] 2 3 4 9
#>
#> [[145]]
#> [1] 2 3 4 10
#>
#> [[146]]
#> [1] 2 3 5 6
#>
#> [[147]]
#> [1] 2 3 5 7
#>
#> [[148]]
#> [1] 2 3 5 8
#>
#> [[149]]
#> [1] 2 3 5 9
#>
#> [[150]]
#> [1] 2 3 5 10
#>
#> [[151]]
#> [1] 2 3 6 7
#>
#> [[152]]
#> [1] 2 3 6 8
#>
#> [[153]]
#> [1] 2 3 6 9
#>
#> [[154]]
#> [1] 2 3 6 10
#>
#> [[155]]
#> [1] 2 3 7 8
#>
#> [[156]]
#> [1] 2 3 7 9
#>
#> [[157]]
#> [1] 2 3 7 10
#>
#> [[158]]
#> [1] 2 3 8 9
#>
#> [[159]]
#> [1] 2 3 8 10
#>
#> [[160]]
#> [1] 2 3 9 10
#>
#> [[161]]
#> [1] 2 4 5 6
#>
#> [[162]]
#> [1] 2 4 5 7
#>
#> [[163]]
#> [1] 2 4 5 8
#>
#> [[164]]
#> [1] 2 4 5 9
#>
#> [[165]]
#> [1] 2 4 5 10
#>
#> [[166]]
#> [1] 2 4 6 7
#>
#> [[167]]
#> [1] 2 4 6 8
#>
#> [[168]]
#> [1] 2 4 6 9
#>
#> [[169]]
#> [1] 2 4 6 10
#>
#> [[170]]
#> [1] 2 4 7 8
#>
#> [[171]]
#> [1] 2 4 7 9
#>
#> [[172]]
#> [1] 2 4 7 10
#>
#> [[173]]
#> [1] 2 4 8 9
#>
#> [[174]]
#> [1] 2 4 8 10
#>
#> [[175]]
#> [1] 2 4 9 10
#>
#> [[176]]
#> [1] 2 5 6 7
#>
#> [[177]]
#> [1] 2 5 6 8
#>
#> [[178]]
#> [1] 2 5 6 9
#>
#> [[179]]
#> [1] 2 5 6 10
#>
#> [[180]]
#> [1] 2 5 7 8
#>
#> [[181]]
#> [1] 2 5 7 9
#>
#> [[182]]
#> [1] 2 5 7 10
#>
#> [[183]]
#> [1] 2 5 8 9
#>
#> [[184]]
#> [1] 2 5 8 10
#>
#> [[185]]
#> [1] 2 5 9 10
#>
#> [[186]]
#> [1] 2 6 7 8
#>
#> [[187]]
#> [1] 2 6 7 9
#>
#> [[188]]
#> [1] 2 6 7 10
#>
#> [[189]]
#> [1] 2 6 8 9
#>
#> [[190]]
#> [1] 2 6 8 10
#>
#> [[191]]
#> [1] 2 6 9 10
#>
#> [[192]]
#> [1] 2 7 8 9
#>
#> [[193]]
#> [1] 2 7 8 10
#>
#> [[194]]
#> [1] 2 7 9 10
#>
#> [[195]]
#> [1] 2 8 9 10
#>
#> [[196]]
#> [1] 3 4 5 6
#>
#> [[197]]
#> [1] 3 4 5 7
#>
#> [[198]]
#> [1] 3 4 5 8
#>
#> [[199]]
#> [1] 3 4 5 9
#>
#> [[200]]
#> [1] 3 4 5 10
#>
#> [[201]]
#> [1] 3 4 6 7
#>
#> [[202]]
#> [1] 3 4 6 8
#>
#> [[203]]
#> [1] 3 4 6 9
#>
#> [[204]]
#> [1] 3 4 6 10
#>
#> [[205]]
#> [1] 3 4 7 8
#>
#> [[206]]
#> [1] 3 4 7 9
#>
#> [[207]]
#> [1] 3 4 7 10
#>
#> [[208]]
#> [1] 3 4 8 9
#>
#> [[209]]
#> [1] 3 4 8 10
#>
#> [[210]]
#> [1] 3 4 9 10
#>
#> [[211]]
#> [1] 3 5 6 7
#>
#> [[212]]
#> [1] 3 5 6 8
#>
#> [[213]]
#> [1] 3 5 6 9
#>
#> [[214]]
#> [1] 3 5 6 10
#>
#> [[215]]
#> [1] 3 5 7 8
#>
#> [[216]]
#> [1] 3 5 7 9
#>
#> [[217]]
#> [1] 3 5 7 10
#>
#> [[218]]
#> [1] 3 5 8 9
#>
#> [[219]]
#> [1] 3 5 8 10
#>
#> [[220]]
#> [1] 3 5 9 10
#>
#> [[221]]
#> [1] 3 6 7 8
#>
#> [[222]]
#> [1] 3 6 7 9
#>
#> [[223]]
#> [1] 3 6 7 10
#>
#> [[224]]
#> [1] 3 6 8 9
#>
#> [[225]]
#> [1] 3 6 8 10
#>
#> [[226]]
#> [1] 3 6 9 10
#>
#> [[227]]
#> [1] 3 7 8 9
#>
#> [[228]]
#> [1] 3 7 8 10
#>
#> [[229]]
#> [1] 3 7 9 10
#>
#> [[230]]
#> [1] 3 8 9 10
#>
#> [[231]]
#> [1] 4 5 6 7
#>
#> [[232]]
#> [1] 4 5 6 8
#>
#> [[233]]
#> [1] 4 5 6 9
#>
#> [[234]]
#> [1] 4 5 6 10
#>
#> [[235]]
#> [1] 4 5 7 8
#>
#> [[236]]
#> [1] 4 5 7 9
#>
#> [[237]]
#> [1] 4 5 7 10
#>
#> [[238]]
#> [1] 4 5 8 9
#>
#> [[239]]
#> [1] 4 5 8 10
#>
#> [[240]]
#> [1] 4 5 9 10
#>
#> [[241]]
#> [1] 4 6 7 8
#>
#> [[242]]
#> [1] 4 6 7 9
#>
#> [[243]]
#> [1] 4 6 7 10
#>
#> [[244]]
#> [1] 4 6 8 9
#>
#> [[245]]
#> [1] 4 6 8 10
#>
#> [[246]]
#> [1] 4 6 9 10
#>
#> [[247]]
#> [1] 4 7 8 9
#>
#> [[248]]
#> [1] 4 7 8 10
#>
#> [[249]]
#> [1] 4 7 9 10
#>
#> [[250]]
#> [1] 4 8 9 10
#>
#> [[251]]
#> [1] 5 6 7 8
#>
#> [[252]]
#> [1] 5 6 7 9
#>
#> [[253]]
#> [1] 5 6 7 10
#>
#> [[254]]
#> [1] 5 6 8 9
#>
#> [[255]]
#> [1] 5 6 8 10
#>
#> [[256]]
#> [1] 5 6 9 10
#>
#> [[257]]
#> [1] 5 7 8 9
#>
#> [[258]]
#> [1] 5 7 8 10
#>
#> [[259]]
#> [1] 5 7 9 10
#>
#> [[260]]
#> [1] 5 8 9 10
#>
#> [[261]]
#> [1] 6 7 8 9
#>
#> [[262]]
#> [1] 6 7 8 10
#>
#> [[263]]
#> [1] 6 7 9 10
#>
#> [[264]]
#> [1] 6 8 9 10
#>
#> [[265]]
#> [1] 7 8 9 10
#>
combn_perm(letters[1:4], perm = TRUE)
#> [[1]]
#> [1] "a"
#>
#> [[2]]
#> [1] "b"
#>
#> [[3]]
#> [1] "c"
#>
#> [[4]]
#> [1] "d"
#>
#> [[5]]
#> [1] "a" "b"
#>
#> [[6]]
#> [1] "a" "c"
#>
#> [[7]]
#> [1] "a" "d"
#>
#> [[8]]
#> [1] "b" "c"
#>
#> [[9]]
#> [1] "b" "d"
#>
#> [[10]]
#> [1] "c" "d"
#>
#> [[11]]
#> [1] "a" "b" "c"
#>
#> [[12]]
#> [1] "a" "b" "d"
#>
#> [[13]]
#> [1] "a" "c" "d"
#>
#> [[14]]
#> [1] "b" "c" "d"
#>
#> [[15]]
#> [1] "a" "b" "c" "d"
#>
rownames(mtcars) |>
combn_perm(2) |> length()
#> [1] 496
if (FALSE) { # \dontrun{
rownames(mtcars) |>
combn_perm(2,limit=100)
} # }