import re


def natural_sort_key(string_to_split):
    """ Turn a string into a list of string and number chunks.
        "z23a" -> ["z", 23, "a"]

        Can be used to implement "natural sort" order. See:
            http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html
            http://nedbatchelder.com/blog/200712.html#e20071211T054956
    """
    def tryint(val):
        try:
            return int(val)
        except ValueError:
            return val

    return [tryint(chunk) for chunk in re.split('(\d+)', string_to_split)]