def make_placeholders(seq, start=1):
    """
    Generate placeholders for the given sequence.
    """
    if len(seq) == 0:
        raise ValueError('Sequence must have at least one element.')
    param_style = Context.current().param_style
    placeholders = None
    if isinstance(seq, dict):
        if param_style in ('named', 'pyformat'):
            template = ':%s' if param_style == 'named' else '%%(%s)s'
            placeholders = (template % key
                            for key in six.iterkeys(seq))
    elif isinstance(seq, (list, tuple)):
        if param_style == 'numeric':
            placeholders = (':%d' % i
                            for i in xrange(start, start + len(seq)))
        elif param_style in ('qmark', 'format', 'pyformat'):
            placeholders = itertools.repeat(
                '?' if param_style == 'qmark' else '%s',
                len(seq))
    if placeholders is None:
        raise NotSupported(
            "Param style '%s' does not support sequence type '%s'" % (
                param_style, seq.__class__.__name__))
    return ', '.join(placeholders)
Generate placeholders for the given sequence.