def generated_states(initial_state, preparations):
    """
    Generate states prepared from channel operators acting on an initial state.
    Typically the channel operators will be unitary.

    :param qutip.Qobj initial_state: The initial state as a density matrix.
    :param (list|tuple) preparations: The unitary channel operators that transform the initial
     state.
    :return: The states generated from preparations acting on intial_state
    :rtype: list
    """
    return [e * initial_state * e.dag() for e in preparations]