python – Generate many, many folders fast

I’ve made a program which makes the folders a-z, and in each of those makes the folders a-z, and in each of… you get it. many, many folders. its quite slow at the moment, would there be any way to optimize?

import os
from os import chdir,mkdir,rmdir
from os.path import isdir
from sys import exit

if os.name == "nt":
    os.system("color")

DIRLIMIT = 4
LOGLIMIT = 2

CHAR_GREEN = "u001b(32m"
CHAR_RESET = "u001b(0m"
CHAR_WHITE = "u001b(37m"
CHAR_CYAN = "u001b(36m"
CHAR_MAGENTA = "u001b(35;1m"
CHAR_YELLOW = "u001b(33m"

PREFIX = "dir_"
CHARS_ALPHABET = ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", " ") #last character is empty whitespace

colors_dict = {
    0: CHAR_RESET,
    1: CHAR_GREEN,
    2: CHAR_YELLOW,
    3: CHAR_MAGENTA,
    4: CHAR_CYAN,
    5: CHAR_WHITE
}



def make_recursive():
    usr = int(input("Input how many directores you want:n> "))
    print(f"Making '{usr}' directories with prefix '{PREFIX}'n")
    for curGoal in range(usr):
        curGoal += 1
        try:
            mkdir(f"./{PREFIX}{curGoal}")
            chdir(f"./{PREFIX}{curGoal}")
            print(f"Made directory '{PREFIX}{curGoal}', navigated")
        except (FileNotFoundError, OSError):
            input(f"I can't go any further, MAX_PATH is still limited at 260 characters for this system. Please remove this limit, and run me again!nnPress the enter key to exit...")
            return
        except FileExistsError:
            chdir(f"./{PREFIX}{curGoal}")
            print(f"Already found directory '{PREFIX}{curGoal}', navigated")

    input("nDone!nnPress enter to exit...")
    return

def rmtree(path : str, level : int = 0):
    try:
        start = autotab(level)

        if start != None:
            print(f"{start}Working on level {level}{CHAR_RESET}tttt'{path}'")

        os.rmdir(path)  
    except OSError:
        for folder in os.listdir(path):
            try:
                rmtree(f"{path}/{folder}", level+1)
            except NotADirectoryError:
                os.remove(f"{path}/{folder}")
    if os.path.exists(path):
        rmtree(path)
    
def make_letters():
    for char in CHARS_ALPHABET:
        mkdir(f"./{char}")

def start_makealphabet():
    try:
        mkdir("./Alphabet")
        chdir("./Alphabet")
    except FileExistsError:
        input("Alphabet already exists!nnPress the enter key to delete it...")

        rmtree("./Alphabet")

        input("nAlphabet deleted!nnPress the enter key to exit...")
        return

    make_alphabet()

    input(f"nnnn{CHAR_MAGENTA}Generation done!nn{CHAR_RESET}Press the enter key to exit...")
    exit()

def autotab(level):
    if level == 0 or level > LOGLIMIT:
        return None
    try:
        returnString = colors_dict(level)
    except KeyError:
        returnString = ""
    while level != 1:
        level -= 1
        returnString += "t"
    
    return returnString

def make_alphabet(level=1, curpath=""):
    for char in CHARS_ALPHABET:
        mkdir(f"./{char}")
        start = autotab(level)
        if start != None:
            print(f"{start}Working on level {level}{char}{CHAR_RESET}")
        chdir(f"./{char}")
        if level < DIRLIMIT:
            make_alphabet(level+1, f"{curpath}{char}")
        else:
            with open(f"{curpath}{char}", "w"):
                pass
        chdir("..")

if __name__ == "__main__":
    try:
        start_makealphabet()
    except KeyboardInterrupt:
        input("Program stopped.nnPress the enter key to exit...")
        exit()