Wordlist Generator is an advanced, customizable wordlist generator designed for cybersecurity, penetration testing, and password auditing tasks. The utility allows you to flexibly create custom wordlists based on user data, mutations, templates, and additional command-line options.
The project is modular and organized as follows:
- core/ — Main logic for wordlist generation (CLI, input processing, mutations, combinatorics)
- output/ — Handles saving results to files
- presets/ — (Reserved for templates and presets)
- tests/ — Unit tests for core components
- main.py — Entry point that connects all modules
-
Command-Line Argument Parsing
The CLI is built usingsetup_cli, which collects launch parameters such as maximum word length, leetspeak toggling, capitalization, and extra words. -
User Data Collection
Currently, user data is provided via the--extraargument. You can supply names, nicknames, hobbies, or any relevant keywords. -
Mutation Generation
For each user-supplied word, theMutatormodule applies a variety of transformations:- Letter repetition (e.g.,
daaniil) - Leetspeak substitutions (e.g.,
d4n11l) - Case variations (all possible upper/lowercase combinations)
- Suffixes (e.g.,
123,!,_dev,2023) - Insertion of special characters at different positions
- Letter repetition (e.g.,
-
Combinatorial Generation
All pairs of user words are combined using different patterns (e.g., joined, hyphenated, underscored), and mutations are applied to these combinations as well. -
Length Filtering
If a maximum length (--max-length) is specified, all words exceeding this length are filtered out. -
Duplicate Removal
TheWriter.remove_duplicatesfunction ensures the final wordlist contains only unique entries. -
Saving the Result
The final wordlist is saved tooutput/wordlist.txt.
SmartWordlistGen
├── core
│ ├── __init__.py
│ ├── input_handler.py
│ ├── mutator.py
│ ├── combiner.py
│ └── cli.py
├── presets
│ ├── __init__.py
│ └── default_presets.py
├── output
│ ├── __init__.py
│ └── writer.py
├── tests
│ ├── __init__.py
│ ├── test_input_handler.py
│ ├── test_mutator.py
│ ├── test_combiner.py
│ └── test_writer.py
├── main.py
├── requirements.txt
└── README.md
- Clone the repository or download the source code:
git clone https://github.com/hiitaro/Wordlist-Generator.git python WordlistGen/main.py
- Install dependencies:
pip install -r requirements.txt
Run the generator from the command line:
python main.py --extra <word1> <word2> ... [--max-length N] [--leet] [--capitalize]--extra— Additional words or phrases for wordlist generation (required)--max-length— Maximum length of generated words (default: unlimited)--leet— Enable leetspeak variants--capitalize— Enable variants with capitalized letters (currently affects only templates, not mutations)
python main.py --extra Maria 1990 Football Ben --leet --capitalize --max-length 12Result:
A file named wordlist.txt will appear in the output/ directory, containing unique words generated from your input and selected options.
1990Maria!
MARIA-bEn
fOOTBaLL_bEn
ben-footBall
FoOTBAlLBeN
beNfOotBalL
1990_Ben%
FOOTbalLBen
Ben-FOOTBaLl
ben_FOOTbALL
BeN_foOtBAlL
BeNfooTbALl
FoOtbaLL-BEN
bEnFoOtBAll
FOotBallbEn
footbALl-BEN
Ben@Maria
BENfootBALl
Ben_^Maria
bEN-Maria
foOtballbeN
...
- Add new mutations: Extend the
Mutatorclass with your own mutation methods. - Add new combination patterns: Edit the
combo_patternslist inmain.py. - Integrate presets or templates: Place your files in the
presets/directory and update the logic as needed.
Pull requests and suggestions are welcome!