import re


def generate_id(*args):
    """
    Generate an id value from a list of arguments (lowercase with - separators)
    :param args: Arbitrary length list of arguments to form the id from
    :return: A str id value
    """
    _id = '-'.join([str(x) for x in args if x != ''])

    _id = _id.lower()

    parts = re.sub('[^0-9a-zA-Z]+', '-', _id)
    return ''.join(parts)