human
I wrote the below code

    def strip_punctuation(s, punctuation=set(punctuation)):
        return [w for w in s if (((isinstance(w, Word) and w.string) or w) not in punctuation)]
    if (n <= 0):
        return []
    if isinstance(string, list):
        s = [strip_punctuation(string)]
    if isinstance(string, basestring):
        s = [strip_punctuation(s.split('    ')) for s in tokenize(string)]
    if isinstance(string, Sentence):
        s = [strip_punctuation(string)]
    if isinstance(string, Text):
        s = [strip_punctuation(s) for s in string]
    if continuous:
        s = [sum(s, [])]
    g = []
    for s in s:
        g.extend([tuple(s[i:(i + n)]) for i in range(((len(s) - n) + 1))])
    return g

What's a good function header?
 ... Here's a good function header?
assistant
#Here's a good function header.

def ngrams(string, n=3, punctuation=PUNCTUATION, continuous=False):