Spotify puzzle problem in python
You have unicode strings as comments. Just use comments.
You rely on manipulating global state, not a good idea. Instead,
have function return things. You don't use any return statements
anywhere in your code.   
You use not a == b instead of a != b in several places
You use a in xrange(b,c) where b &lt;= a &lt; c would be better
All of your for loops use xrange, usually you want to iterate over the container directly
Your yearCheck function doesn't do anything. The if condition is impossible to satisfy. It looks like you discovered this, because you've implemented the logic down in the printer function. 
You delay converting the data components to integer, this only serves to complexicate your code.
You generate a list of leap years, but you only ever check the years 0, 1, 2 and 3. 
You keep the data inside the list the whole time. Code is easier to follow if you don't do that. Pull the data out of lists into local variables rather then indexing into the list.


Here is a reworking of your approach:

NORMAL_MONTHS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
LEAP_MONTHS = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

def get_month_lengths(year):    
    """
    Returns appropriate months for a particular year
    """
    if year % 4 == 0:
        if year % 100 == 0:
            if year % 400 == 0:
                return LEAP_MONTHS
        else:
            return LEAP_MONTHS
    return NORMAL_MONTHS


def print_date(year, month, day):
    """
    Print the given date
    """
    if year &lt; 2000:
        year += 2000
    print u'%04d-%02d-%02d' % (year, month, day)

# Looks for legal dates, first [Y&lt;M&lt;D] then [M&lt;Y&lt;D] then [M,D,Y] 

def dateMaker(data):
    """
    Try different ways of interpretating the date
    """
    a, b, c = data

    for year, month, day in [(c,b,a), (c,a,a), (b,a,c)]:
        month_lengths = get_month_lengths(year)
        if month &lt;= 12 and day &lt;= month_lengths[month - 1]:
            print_date(year, month, day)
            return

    print unicode(data) + u" is illegal"


data = sorted(map(int, raw_input().split(u"/")))
dateMaker(data)