from typing import List
import itertools
import random


def get_separators(
    space_count: int, sep_count: int, padding_count: int, shuffle: bool
) -> List[str]:
    """Create a list of separators (whitespaces)

    Arguments:
    space_count  : minimum number of spaces to add between workds (before padding)
    sep_count    : number of separators (intervals in a line)
    padding_count: number of extra spaces to add and spread in the line. For example
                   for 4 intervals of 2 spaces, it may be necessary to add 2 extra
                   spaces for the line to align to the expectaded number of columns.
    shuffle      : When set to true, the spaces will be randomly spread n the list
                   to ensure that padding will not only be showing on the first few
                   separators.
    """
    seps = [
        a + b
        for a, b in itertools.zip_longest(
            [" " * (space_count + 1)] * sep_count, [" "] * padding_count, fillvalue=""
        )
    ]
    if shuffle:
        random.shuffle(seps)
    return seps