from typing import List


def find_generators(modulus: int) -> List[int]:
    """
    Finds all generators for the cyclic group Z_n^* under multiplication modulo n.
    """
    generators = []
    for candidate in range(0, modulus):
        # Calculate the order of the candidate
        for exponent in range(1, modulus):
            if pow(candidate, exponent) % modulus == 1:
                # If this the *last* exponent for this candiate procuded the `1`
                # Then the cyclic group has the generator `candidate`
                if exponent == modulus - 1:
                    generators.append(candidate)

                # The exponentiation result `1` means a cycle within the group was completed.
                # Further exponentiations will only produce the same list of results again.
                break

    return generators