'An auxiliary function to create_mutants.
:return: A list of mutants.'

@staticmethod
def _create_mutants_worker(freq, mutant_cls, payload_list, fuzzable_param_list, append, fuzzer_config):

    if (not issubclass(mutant_cls, Mutant)):
        msg = 'mutant_cls    parameter    needs    to    be    one    of    the    known    mutant    classes,    not    %s.'
        raise ValueError((msg % mutant_cls))
    result = []
    data_container = mutant_cls(freq).get_dc()
    for payload in payload_list:
        for (dc_copy, token) in data_container.iter_bound_tokens():
            if is_in_ignored_parameters(token.get_name()):
                continue
            if (not (fuzzable_param_list == [])):
                if (not (token.get_name() in fuzzable_param_list)):
                    continue
            if hasattr(dc_copy, 'smart_fill'):
                dc_copy.smart_fill()
            if append:
                if (not isinstance(payload, basestring)):
                    msg = 'Incorrect    payload    type    %s'
                    raise RuntimeError((msg % type(payload)))
                original_value = token.get_original_value()
                token.set_value(('%s%s' % (original_value, payload)))
            else:
                token.set_value(payload)
            freq_copy = copy.deepcopy(freq)
            m = mutant_cls(freq_copy)
            m.set_dc(dc_copy)
            result.append(m)
    return result
