The valid foreground colors provided by colorama are variables on colorama.Fore
. We can retrieve them using vars(colorama.Fore).values()
. We can random select a foreground color by using random.choice
, feeding it the foreground colors as obtained by vars
.
Then we simply apply a randomly-chosen color to each character:
text = """
_____ _ _ __ _
/ ____| | | | / _| |
| (___ | |_ __ _ ___| | _______ _____ _ __| |_| | _____ __
\___ \| __/ _` |/ __| |/ / _ \ \ / / _ \ '__| _| |/ _ \ \ /\ / /
____) | || (_| | (__| < (_) \ V / __/ | | | | | (_) \ V V /
|_____/ \__\__,_|\___|_|\_\___/ \_/ \___|_| |_| |_|\___/ \_/\_/
"""
import colorama
import random
colors = list(vars(colorama.Fore).values())
colored_chars = [random.choice(colors) + char for char in text]
print(''.join(colored_chars))
This will print every character in a different color:

If you want colored lines instead, it's a simple change:
colored_lines = [random.choice(colors) + line for line in text.split('\n')]
print('\n'.join(colored_lines))

You can tailor the list of colors to your needs. For instance, if you want to remove colors which may be similar to your terminal background (black, white, etc.) you can write:
bad_colors = ['BLACK', 'WHITE', 'LIGHTBLACK_EX', 'RESET']
codes = vars(colorama.Fore)
colors = [codes[color] for color in codes if color not in bad_colors]
colored_chars = [random.choice(colors) + char for char in text]
print(''.join(colored_chars))
Which gives:
