combination-generator
v0.1.0
Published
generates all combinations (or non-unique permutations) of a given list of characters within a range of string length i.e. generate(['a','f','t','6','-','@','T',';'], 2, 4)
Downloads
10
Maintainers
Readme
String Generator
An NPM package that will allow you to provide a list of characters and a min/max length of output string to generate a list of all possible combinations (or non-unique permutations) of those characters. This is useful for getting a list of characters for brute-forcing things.
Installation
npm install -g string-generator
NB: Global installation is required for CLI commands to work correctly
Usage
Expected input
The input is expected to be an array of characters expected to be used i.e.
var myCharacterList = ['a','0','R','3','#','f','P','x'];
Code
Using that array we can pass it through as the first parameter, and then specify the minimum and maximum length of the combinations to be generated
var generator = require('../generator.js'),
myCombinations = generator(myCharacterList, 1, 2); //1 is the shorted a combo will be, 2 is the longest
console.log(myCombinations);
Output
This will output a JSON string containing all possible combinations like so:
["a","0","R","3","#","f","P","x","aa","a0","aR","a3","a#","af","aP","ax","0a","00","0R","03","0#","0f","0P","0x","Ra","R0","RR","R3","R#","Rf","RP","Rx","3a","30","3R","33","3#","3f","3P","3x","#a","#0","#R","#3","##","#f","#P","#x","fa","f0","fR","f3","f#","ff","fP","fx","Pa","P0","PR","P3","P#","Pf","PP","Px","xa","x0","xR","x3","x#","xf","xP","xx"]
Using as CLI (Runtime)
You can use the command in 2 a few different ways using an input file, or an inline comma-separated list i.e.
generate-combos a,0,R,3,#,f,P,x 1 2
You can pipe the output in to a file like so:
generate-combos a,0,R,3,#,f,P,x 1 2 >> my-list-of-character-combinations.json
You can also specify an input file, the file must contain the same expected input i.e.
my-input-list.json
a,0,R,3,#,f,P,x 1 2
Then run the command:
generate-combos my-input-list.json 1 2
or use the same command and pipe in to a JSON file for further usage:
generate-combos my-input-list.json 1 2 >> my-list-of-character-combinations.json