Python Palindrome Generator
I'd implement this function like this:

from itertools import count

def palindromes():
    """Generate numbers that are palindromes in base 10."""
    yield 0
    for digits in count(1):
        first = 10 ** ((digits - 1) // 2)
        for s in map(str, range(first, 10 * first)):
            yield int(s + s[-(digits % 2)-1::-1])


(In Python 2, you should replace range with xrange and map with itertools.imap.)

The insight is that instead of building an odd-length palindrome from the parts prefix + middle + xiferp, we can build it as prefix + iferp: that is, with the middle digit being supplied by the last digit of the prefix.
In your main loop, you arrange to generate the first 501 palindromes:

for i, palindromeNumber in enumerate(palindromGenerator):
    ...
    if i &gt;= 500:
        break


but it would be simpler to use itertools.islice:

for i, palindrome in islice(enumerate(palindromeGenerator), 501):
    ...

As for your question about efficiency, it is impossible to answer without knowing the purpose of this code. If all you are going to do is to print the first 501 palindromes, then your code is fine: the runtime will be dominated by printing the output.