'For a regular verb (base form), returns the forms using a rule-based approach.'

def find_lexeme(self, verb):

    v = verb.lower()
    if ((len(v) > 1) and v.endswith('e') and (v[(-2)] not in VOWELS)):
        return ([v, v, v, (v + 's'), v, (v[:(-1)] + 'ing')] + ([(v + 'd')] * 6))
    if ((len(v) > 1) and v.endswith('y') and (v[(-2)] not in VOWELS)):
        return ([v, v, v, (v[:(-1)] + 'ies'), v, (v + 'ing')] + ([(v[:(-1)] + 'ied')] * 6))
    if v.endswith(('ss', 'sh', 'ch', 'x')):
        return ([v, v, v, (v + 'es'), v, (v + 'ing')] + ([(v + 'ed')] * 6))
    if v.endswith('ic'):
        return ([v, v, v, (v + 'es'), v, (v + 'king')] + ([(v + 'ked')] * 6))
    if ((len(v) > 1) and (v[(-1)] not in VOWELS) and (v[(-2)] not in VOWELS)):
        return ([v, v, v, (v + 's'), v, (v + 'ing')] + ([(v + 'ed')] * 6))
    if (((len(v) > 1) and v.endswith(('y', 'w')) and (v[(-2)] in VOWELS)) or ((len(v) > 2) and (v[(-1)] not in VOWELS) and (v[(-2)] in VOWELS) and (v[(-3)] in VOWELS)) or ((len(v) > 3) and (v[(-1)] not in VOWELS) and (v[(-3)] in VOWELS) and (v[(-4)] in VOWELS))):
        return ([v, v, v, (v + 's'), v, (v + 'ing')] + ([(v + 'ed')] * 6))
    if ((len(v) > 2) and (v[(-1)] not in VOWELS) and (v[(-2)] in VOWELS) and (v[(-3)] not in VOWELS)):
        return ([v, v, v, (v + 's'), v, ((v + v[(-1)]) + 'ing')] + ([((v + v[(-1)]) + 'ed')] * 6))
    return ([v, v, v, (v + 's'), v, (v + 'ing')] + ([(v + 'ed')] * 6))
