def split_nums( text ):
    """
    Splits a string into pieces of numbers and non-numbers, like 'abc23B3' --> [ 'abc', 23, 'B', 3 ]
    """
    split_t = []
    c = ''
    n = ''
    for ch in text:
        try:
            v = int( ch )
            n += ch
            if c:
                split_t.append( ''.join( c ) )
                c = ''
        except ValueError:
            c += ch
            if n:
                split_t.append( int( ''.join( n ) ) )
                n = ''
    if c:
        split_t.append( ''.join( c ) )
    if n:
        split_t.append( int( ''.join( n ) ) )
    return split_t