That feeling when you want to see the 648 permutations of the words “evidence”, “based”, “policy”, and “making”, conjoined by space, hyphen, or just stuck together without either to make a closed compound word.
library(tidyverse)
word_orders <- function(words) {
stopifnot(length(words) > 0)
if (length(words) == 1) {
res <- list(words)
}
else {
res <- list()
for (i in seq_along(words)) {
next_list <- word_orders(words[-i])
for (ws in next_list) {
hyphen <- c(words[i], "-", ws)
space <- c(words[i], " ", ws)
compound <- c(words[i], ws)
res <- c(res, list(hyphen, space, compound))
}
}
}
res
}
res <- word_orders(c("evidence", "based", "policy", "making")) |>
map_chr(\(x) paste(x, collapse = ""))
length(res)
[1] 648
res
[1] "evidence-based-policy-making" "evidence based-policy-making"
[3] "evidencebased-policy-making" "evidence-based policy-making"
[5] "evidence based policy-making" "evidencebased policy-making"
[7] "evidence-basedpolicy-making" "evidence basedpolicy-making"
[9] "evidencebasedpolicy-making" "evidence-based-policy making"
[11] "evidence based-policy making" "evidencebased-policy making"
[13] "evidence-based policy making" "evidence based policy making"
[15] "evidencebased policy making" "evidence-basedpolicy making"
[17] "evidence basedpolicy making" "evidencebasedpolicy making"
[19] "evidence-based-policymaking" "evidence based-policymaking"
[21] "evidencebased-policymaking" "evidence-based policymaking"
[23] "evidence based policymaking" "evidencebased policymaking"
[25] "evidence-basedpolicymaking" "evidence basedpolicymaking"
[27] "evidencebasedpolicymaking" "evidence-based-making-policy"
[29] "evidence based-making-policy" "evidencebased-making-policy"
[31] "evidence-based making-policy" "evidence based making-policy"
[33] "evidencebased making-policy" "evidence-basedmaking-policy"
[35] "evidence basedmaking-policy" "evidencebasedmaking-policy"
[37] "evidence-based-making policy" "evidence based-making policy"
[39] "evidencebased-making policy" "evidence-based making policy"
[41] "evidence based making policy" "evidencebased making policy"
[43] "evidence-basedmaking policy" "evidence basedmaking policy"
[45] "evidencebasedmaking policy" "evidence-based-makingpolicy"
[47] "evidence based-makingpolicy" "evidencebased-makingpolicy"
[49] "evidence-based makingpolicy" "evidence based makingpolicy"
[51] "evidencebased makingpolicy" "evidence-basedmakingpolicy"
[53] "evidence basedmakingpolicy" "evidencebasedmakingpolicy"
[55] "evidence-policy-based-making" "evidence policy-based-making"
[57] "evidencepolicy-based-making" "evidence-policy based-making"
[59] "evidence policy based-making" "evidencepolicy based-making"
[61] "evidence-policybased-making" "evidence policybased-making"
[63] "evidencepolicybased-making" "evidence-policy-based making"
[65] "evidence policy-based making" "evidencepolicy-based making"
[67] "evidence-policy based making" "evidence policy based making"
[69] "evidencepolicy based making" "evidence-policybased making"
[71] "evidence policybased making" "evidencepolicybased making"
[73] "evidence-policy-basedmaking" "evidence policy-basedmaking"
[75] "evidencepolicy-basedmaking" "evidence-policy basedmaking"
[77] "evidence policy basedmaking" "evidencepolicy basedmaking"
[79] "evidence-policybasedmaking" "evidence policybasedmaking"
[81] "evidencepolicybasedmaking" "evidence-policy-making-based"
[83] "evidence policy-making-based" "evidencepolicy-making-based"
[85] "evidence-policy making-based" "evidence policy making-based"
[87] "evidencepolicy making-based" "evidence-policymaking-based"
[89] "evidence policymaking-based" "evidencepolicymaking-based"
[91] "evidence-policy-making based" "evidence policy-making based"
[93] "evidencepolicy-making based" "evidence-policy making based"
[95] "evidence policy making based" "evidencepolicy making based"
[97] "evidence-policymaking based" "evidence policymaking based"
[99] "evidencepolicymaking based" "evidence-policy-makingbased"
[101] "evidence policy-makingbased" "evidencepolicy-makingbased"
[103] "evidence-policy makingbased" "evidence policy makingbased"
[105] "evidencepolicy makingbased" "evidence-policymakingbased"
[107] "evidence policymakingbased" "evidencepolicymakingbased"
[109] "evidence-making-based-policy" "evidence making-based-policy"
[111] "evidencemaking-based-policy" "evidence-making based-policy"
[113] "evidence making based-policy" "evidencemaking based-policy"
[115] "evidence-makingbased-policy" "evidence makingbased-policy"
[117] "evidencemakingbased-policy" "evidence-making-based policy"
[119] "evidence making-based policy" "evidencemaking-based policy"
[121] "evidence-making based policy" "evidence making based policy"
[123] "evidencemaking based policy" "evidence-makingbased policy"
[125] "evidence makingbased policy" "evidencemakingbased policy"
[127] "evidence-making-basedpolicy" "evidence making-basedpolicy"
[129] "evidencemaking-basedpolicy" "evidence-making basedpolicy"
[131] "evidence making basedpolicy" "evidencemaking basedpolicy"
[133] "evidence-makingbasedpolicy" "evidence makingbasedpolicy"
[135] "evidencemakingbasedpolicy" "evidence-making-policy-based"
[137] "evidence making-policy-based" "evidencemaking-policy-based"
[139] "evidence-making policy-based" "evidence making policy-based"
[141] "evidencemaking policy-based" "evidence-makingpolicy-based"
[143] "evidence makingpolicy-based" "evidencemakingpolicy-based"
[145] "evidence-making-policy based" "evidence making-policy based"
[147] "evidencemaking-policy based" "evidence-making policy based"
[149] "evidence making policy based" "evidencemaking policy based"
[151] "evidence-makingpolicy based" "evidence makingpolicy based"
[153] "evidencemakingpolicy based" "evidence-making-policybased"
[155] "evidence making-policybased" "evidencemaking-policybased"
[157] "evidence-making policybased" "evidence making policybased"
[159] "evidencemaking policybased" "evidence-makingpolicybased"
[161] "evidence makingpolicybased" "evidencemakingpolicybased"
[163] "based-evidence-policy-making" "based evidence-policy-making"
[165] "basedevidence-policy-making" "based-evidence policy-making"
[167] "based evidence policy-making" "basedevidence policy-making"
[169] "based-evidencepolicy-making" "based evidencepolicy-making"
[171] "basedevidencepolicy-making" "based-evidence-policy making"
[173] "based evidence-policy making" "basedevidence-policy making"
[175] "based-evidence policy making" "based evidence policy making"
[177] "basedevidence policy making" "based-evidencepolicy making"
[179] "based evidencepolicy making" "basedevidencepolicy making"
[181] "based-evidence-policymaking" "based evidence-policymaking"
[183] "basedevidence-policymaking" "based-evidence policymaking"
[185] "based evidence policymaking" "basedevidence policymaking"
[187] "based-evidencepolicymaking" "based evidencepolicymaking"
[189] "basedevidencepolicymaking" "based-evidence-making-policy"
[191] "based evidence-making-policy" "basedevidence-making-policy"
[193] "based-evidence making-policy" "based evidence making-policy"
[195] "basedevidence making-policy" "based-evidencemaking-policy"
[197] "based evidencemaking-policy" "basedevidencemaking-policy"
[199] "based-evidence-making policy" "based evidence-making policy"
[201] "basedevidence-making policy" "based-evidence making policy"
[203] "based evidence making policy" "basedevidence making policy"
[205] "based-evidencemaking policy" "based evidencemaking policy"
[207] "basedevidencemaking policy" "based-evidence-makingpolicy"
[209] "based evidence-makingpolicy" "basedevidence-makingpolicy"
[211] "based-evidence makingpolicy" "based evidence makingpolicy"
[213] "basedevidence makingpolicy" "based-evidencemakingpolicy"
[215] "based evidencemakingpolicy" "basedevidencemakingpolicy"
[217] "based-policy-evidence-making" "based policy-evidence-making"
[219] "basedpolicy-evidence-making" "based-policy evidence-making"
[221] "based policy evidence-making" "basedpolicy evidence-making"
[223] "based-policyevidence-making" "based policyevidence-making"
[225] "basedpolicyevidence-making" "based-policy-evidence making"
[227] "based policy-evidence making" "basedpolicy-evidence making"
[229] "based-policy evidence making" "based policy evidence making"
[231] "basedpolicy evidence making" "based-policyevidence making"
[233] "based policyevidence making" "basedpolicyevidence making"
[235] "based-policy-evidencemaking" "based policy-evidencemaking"
[237] "basedpolicy-evidencemaking" "based-policy evidencemaking"
[239] "based policy evidencemaking" "basedpolicy evidencemaking"
[241] "based-policyevidencemaking" "based policyevidencemaking"
[243] "basedpolicyevidencemaking" "based-policy-making-evidence"
[245] "based policy-making-evidence" "basedpolicy-making-evidence"
[247] "based-policy making-evidence" "based policy making-evidence"
[249] "basedpolicy making-evidence" "based-policymaking-evidence"
[251] "based policymaking-evidence" "basedpolicymaking-evidence"
[253] "based-policy-making evidence" "based policy-making evidence"
[255] "basedpolicy-making evidence" "based-policy making evidence"
[257] "based policy making evidence" "basedpolicy making evidence"
[259] "based-policymaking evidence" "based policymaking evidence"
[261] "basedpolicymaking evidence" "based-policy-makingevidence"
[263] "based policy-makingevidence" "basedpolicy-makingevidence"
[265] "based-policy makingevidence" "based policy makingevidence"
[267] "basedpolicy makingevidence" "based-policymakingevidence"
[269] "based policymakingevidence" "basedpolicymakingevidence"
[271] "based-making-evidence-policy" "based making-evidence-policy"
[273] "basedmaking-evidence-policy" "based-making evidence-policy"
[275] "based making evidence-policy" "basedmaking evidence-policy"
[277] "based-makingevidence-policy" "based makingevidence-policy"
[279] "basedmakingevidence-policy" "based-making-evidence policy"
[281] "based making-evidence policy" "basedmaking-evidence policy"
[283] "based-making evidence policy" "based making evidence policy"
[285] "basedmaking evidence policy" "based-makingevidence policy"
[287] "based makingevidence policy" "basedmakingevidence policy"
[289] "based-making-evidencepolicy" "based making-evidencepolicy"
[291] "basedmaking-evidencepolicy" "based-making evidencepolicy"
[293] "based making evidencepolicy" "basedmaking evidencepolicy"
[295] "based-makingevidencepolicy" "based makingevidencepolicy"
[297] "basedmakingevidencepolicy" "based-making-policy-evidence"
[299] "based making-policy-evidence" "basedmaking-policy-evidence"
[301] "based-making policy-evidence" "based making policy-evidence"
[303] "basedmaking policy-evidence" "based-makingpolicy-evidence"
[305] "based makingpolicy-evidence" "basedmakingpolicy-evidence"
[307] "based-making-policy evidence" "based making-policy evidence"
[309] "basedmaking-policy evidence" "based-making policy evidence"
[311] "based making policy evidence" "basedmaking policy evidence"
[313] "based-makingpolicy evidence" "based makingpolicy evidence"
[315] "basedmakingpolicy evidence" "based-making-policyevidence"
[317] "based making-policyevidence" "basedmaking-policyevidence"
[319] "based-making policyevidence" "based making policyevidence"
[321] "basedmaking policyevidence" "based-makingpolicyevidence"
[323] "based makingpolicyevidence" "basedmakingpolicyevidence"
[325] "policy-evidence-based-making" "policy evidence-based-making"
[327] "policyevidence-based-making" "policy-evidence based-making"
[329] "policy evidence based-making" "policyevidence based-making"
[331] "policy-evidencebased-making" "policy evidencebased-making"
[333] "policyevidencebased-making" "policy-evidence-based making"
[335] "policy evidence-based making" "policyevidence-based making"
[337] "policy-evidence based making" "policy evidence based making"
[339] "policyevidence based making" "policy-evidencebased making"
[341] "policy evidencebased making" "policyevidencebased making"
[343] "policy-evidence-basedmaking" "policy evidence-basedmaking"
[345] "policyevidence-basedmaking" "policy-evidence basedmaking"
[347] "policy evidence basedmaking" "policyevidence basedmaking"
[349] "policy-evidencebasedmaking" "policy evidencebasedmaking"
[351] "policyevidencebasedmaking" "policy-evidence-making-based"
[353] "policy evidence-making-based" "policyevidence-making-based"
[355] "policy-evidence making-based" "policy evidence making-based"
[357] "policyevidence making-based" "policy-evidencemaking-based"
[359] "policy evidencemaking-based" "policyevidencemaking-based"
[361] "policy-evidence-making based" "policy evidence-making based"
[363] "policyevidence-making based" "policy-evidence making based"
[365] "policy evidence making based" "policyevidence making based"
[367] "policy-evidencemaking based" "policy evidencemaking based"
[369] "policyevidencemaking based" "policy-evidence-makingbased"
[371] "policy evidence-makingbased" "policyevidence-makingbased"
[373] "policy-evidence makingbased" "policy evidence makingbased"
[375] "policyevidence makingbased" "policy-evidencemakingbased"
[377] "policy evidencemakingbased" "policyevidencemakingbased"
[379] "policy-based-evidence-making" "policy based-evidence-making"
[381] "policybased-evidence-making" "policy-based evidence-making"
[383] "policy based evidence-making" "policybased evidence-making"
[385] "policy-basedevidence-making" "policy basedevidence-making"
[387] "policybasedevidence-making" "policy-based-evidence making"
[389] "policy based-evidence making" "policybased-evidence making"
[391] "policy-based evidence making" "policy based evidence making"
[393] "policybased evidence making" "policy-basedevidence making"
[395] "policy basedevidence making" "policybasedevidence making"
[397] "policy-based-evidencemaking" "policy based-evidencemaking"
[399] "policybased-evidencemaking" "policy-based evidencemaking"
[401] "policy based evidencemaking" "policybased evidencemaking"
[403] "policy-basedevidencemaking" "policy basedevidencemaking"
[405] "policybasedevidencemaking" "policy-based-making-evidence"
[407] "policy based-making-evidence" "policybased-making-evidence"
[409] "policy-based making-evidence" "policy based making-evidence"
[411] "policybased making-evidence" "policy-basedmaking-evidence"
[413] "policy basedmaking-evidence" "policybasedmaking-evidence"
[415] "policy-based-making evidence" "policy based-making evidence"
[417] "policybased-making evidence" "policy-based making evidence"
[419] "policy based making evidence" "policybased making evidence"
[421] "policy-basedmaking evidence" "policy basedmaking evidence"
[423] "policybasedmaking evidence" "policy-based-makingevidence"
[425] "policy based-makingevidence" "policybased-makingevidence"
[427] "policy-based makingevidence" "policy based makingevidence"
[429] "policybased makingevidence" "policy-basedmakingevidence"
[431] "policy basedmakingevidence" "policybasedmakingevidence"
[433] "policy-making-evidence-based" "policy making-evidence-based"
[435] "policymaking-evidence-based" "policy-making evidence-based"
[437] "policy making evidence-based" "policymaking evidence-based"
[439] "policy-makingevidence-based" "policy makingevidence-based"
[441] "policymakingevidence-based" "policy-making-evidence based"
[443] "policy making-evidence based" "policymaking-evidence based"
[445] "policy-making evidence based" "policy making evidence based"
[447] "policymaking evidence based" "policy-makingevidence based"
[449] "policy makingevidence based" "policymakingevidence based"
[451] "policy-making-evidencebased" "policy making-evidencebased"
[453] "policymaking-evidencebased" "policy-making evidencebased"
[455] "policy making evidencebased" "policymaking evidencebased"
[457] "policy-makingevidencebased" "policy makingevidencebased"
[459] "policymakingevidencebased" "policy-making-based-evidence"
[461] "policy making-based-evidence" "policymaking-based-evidence"
[463] "policy-making based-evidence" "policy making based-evidence"
[465] "policymaking based-evidence" "policy-makingbased-evidence"
[467] "policy makingbased-evidence" "policymakingbased-evidence"
[469] "policy-making-based evidence" "policy making-based evidence"
[471] "policymaking-based evidence" "policy-making based evidence"
[473] "policy making based evidence" "policymaking based evidence"
[475] "policy-makingbased evidence" "policy makingbased evidence"
[477] "policymakingbased evidence" "policy-making-basedevidence"
[479] "policy making-basedevidence" "policymaking-basedevidence"
[481] "policy-making basedevidence" "policy making basedevidence"
[483] "policymaking basedevidence" "policy-makingbasedevidence"
[485] "policy makingbasedevidence" "policymakingbasedevidence"
[487] "making-evidence-based-policy" "making evidence-based-policy"
[489] "makingevidence-based-policy" "making-evidence based-policy"
[491] "making evidence based-policy" "makingevidence based-policy"
[493] "making-evidencebased-policy" "making evidencebased-policy"
[495] "makingevidencebased-policy" "making-evidence-based policy"
[497] "making evidence-based policy" "makingevidence-based policy"
[499] "making-evidence based policy" "making evidence based policy"
[501] "makingevidence based policy" "making-evidencebased policy"
[503] "making evidencebased policy" "makingevidencebased policy"
[505] "making-evidence-basedpolicy" "making evidence-basedpolicy"
[507] "makingevidence-basedpolicy" "making-evidence basedpolicy"
[509] "making evidence basedpolicy" "makingevidence basedpolicy"
[511] "making-evidencebasedpolicy" "making evidencebasedpolicy"
[513] "makingevidencebasedpolicy" "making-evidence-policy-based"
[515] "making evidence-policy-based" "makingevidence-policy-based"
[517] "making-evidence policy-based" "making evidence policy-based"
[519] "makingevidence policy-based" "making-evidencepolicy-based"
[521] "making evidencepolicy-based" "makingevidencepolicy-based"
[523] "making-evidence-policy based" "making evidence-policy based"
[525] "makingevidence-policy based" "making-evidence policy based"
[527] "making evidence policy based" "makingevidence policy based"
[529] "making-evidencepolicy based" "making evidencepolicy based"
[531] "makingevidencepolicy based" "making-evidence-policybased"
[533] "making evidence-policybased" "makingevidence-policybased"
[535] "making-evidence policybased" "making evidence policybased"
[537] "makingevidence policybased" "making-evidencepolicybased"
[539] "making evidencepolicybased" "makingevidencepolicybased"
[541] "making-based-evidence-policy" "making based-evidence-policy"
[543] "makingbased-evidence-policy" "making-based evidence-policy"
[545] "making based evidence-policy" "makingbased evidence-policy"
[547] "making-basedevidence-policy" "making basedevidence-policy"
[549] "makingbasedevidence-policy" "making-based-evidence policy"
[551] "making based-evidence policy" "makingbased-evidence policy"
[553] "making-based evidence policy" "making based evidence policy"
[555] "makingbased evidence policy" "making-basedevidence policy"
[557] "making basedevidence policy" "makingbasedevidence policy"
[559] "making-based-evidencepolicy" "making based-evidencepolicy"
[561] "makingbased-evidencepolicy" "making-based evidencepolicy"
[563] "making based evidencepolicy" "makingbased evidencepolicy"
[565] "making-basedevidencepolicy" "making basedevidencepolicy"
[567] "makingbasedevidencepolicy" "making-based-policy-evidence"
[569] "making based-policy-evidence" "makingbased-policy-evidence"
[571] "making-based policy-evidence" "making based policy-evidence"
[573] "makingbased policy-evidence" "making-basedpolicy-evidence"
[575] "making basedpolicy-evidence" "makingbasedpolicy-evidence"
[577] "making-based-policy evidence" "making based-policy evidence"
[579] "makingbased-policy evidence" "making-based policy evidence"
[581] "making based policy evidence" "makingbased policy evidence"
[583] "making-basedpolicy evidence" "making basedpolicy evidence"
[585] "makingbasedpolicy evidence" "making-based-policyevidence"
[587] "making based-policyevidence" "makingbased-policyevidence"
[589] "making-based policyevidence" "making based policyevidence"
[591] "makingbased policyevidence" "making-basedpolicyevidence"
[593] "making basedpolicyevidence" "makingbasedpolicyevidence"
[595] "making-policy-evidence-based" "making policy-evidence-based"
[597] "makingpolicy-evidence-based" "making-policy evidence-based"
[599] "making policy evidence-based" "makingpolicy evidence-based"
[601] "making-policyevidence-based" "making policyevidence-based"
[603] "makingpolicyevidence-based" "making-policy-evidence based"
[605] "making policy-evidence based" "makingpolicy-evidence based"
[607] "making-policy evidence based" "making policy evidence based"
[609] "makingpolicy evidence based" "making-policyevidence based"
[611] "making policyevidence based" "makingpolicyevidence based"
[613] "making-policy-evidencebased" "making policy-evidencebased"
[615] "makingpolicy-evidencebased" "making-policy evidencebased"
[617] "making policy evidencebased" "makingpolicy evidencebased"
[619] "making-policyevidencebased" "making policyevidencebased"
[621] "makingpolicyevidencebased" "making-policy-based-evidence"
[623] "making policy-based-evidence" "makingpolicy-based-evidence"
[625] "making-policy based-evidence" "making policy based-evidence"
[627] "makingpolicy based-evidence" "making-policybased-evidence"
[629] "making policybased-evidence" "makingpolicybased-evidence"
[631] "making-policy-based evidence" "making policy-based evidence"
[633] "makingpolicy-based evidence" "making-policy based evidence"
[635] "making policy based evidence" "makingpolicy based evidence"
[637] "making-policybased evidence" "making policybased evidence"
[639] "makingpolicybased evidence" "making-policy-basedevidence"
[641] "making policy-basedevidence" "makingpolicy-basedevidence"
[643] "making-policy basedevidence" "making policy basedevidence"
[645] "makingpolicy basedevidence" "making-policybasedevidence"
[647] "making policybasedevidence" "makingpolicybasedevidence"
Karl Ove Hufthammer offers this neat non-recursive solution, using {gtools}, {tidyr}, and {gdata}:
words <- c("evidence", "based", "policy", "making")
seps <- c("-", " ", "")
n_words <- length(words)
n_seps <- length(seps)
perm_words <- gtools::permutations(n_words, n_words, words)
perm_seps <- gtools::permutations(n_seps, n_words - 1, seps, repeats.allowed = TRUE)
d <- tidyr::expand_grid(perm_words, perm_seps)
d2 <- gdata::interleave(t(d[1]), rbind(t(d[2]), ""))
res2 <- apply(d2, 2, paste0, collapse = "")
Same result:
all(sort(res) == sort(res2))
[1] TRUE