wordlist_gen.py
# Import the argparse module for handling command line arguments.
# Import the itertools module for generating combinations.
import argparse, itertools
# Define a function to generate a wordlist based on given parameters.
def generate_wordlist(characters, min_length, max_length, output_file):
# Open the output file in write mode.
with open(output_file, 'w') as file:
# Iterate over the range of word lengths from min_length to max_length.
for length in range(min_length, max_length + 1):
# Generate all possible combinations of characters with the given length.
for combination in itertools.product(characters, repeat=length):
# Join the characters to form a word and write it to the file
word = ''.join(combination)
file.write(word + '\n')
# Create an ArgumentParser object for handling command line arguments.
parser = argparse.ArgumentParser(description="Generate a custom wordlist similar to crunch.")
# Define command line arguments.
parser.add_argument("-c", "--characters", type=str, default="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
help="Set of characters to include in the wordlist")
parser.add_argument("-min", "--min_length", type=int, default=4, help="Minimum length of the words")
parser.add_argument("-max", "--max_length", type=int, default=6, help="Maximum length of the words")
parser.add_argument("-o", "--output_file", type=str, default="custom_wordlist.txt", help="Output file name")
# Parse the command line arguments.
args = parser.parse_args()
# Call the generate_wordlist function with the provided arguments.
generate_wordlist(args.characters, args.min_length, args.max_length, args.output_file)
# Print a message indicating the wordlist has been generated and saved.
print(f"[+] Wordlist generated and saved to {args.output_file}")