I have a function:

    def palindrome(n):
        assert(n < 9)
        res = [['0']]
        for x in range(1, n + 1):
            str_x = str(x)
            l = len(res)
            res.insert(0, [str_x] * l)
            res.append([str_x] * l)
            for line in res:
                line.insert(0, str_x)
                line.append(str_x)
        return '\n'.join(
                ''.join(row) for row in res
                )


which creates strings like:

    >palindrome(1)
    111
    101
    111
    >palindrome(7)
    777777777777777
    766666666666667
    765555555555567
    765444444444567
    765433333334567
    765432222234567
    765432111234567
    765432101234567
    765432111234567
    765432222234567
    765433333334567
    765444444444567
    765555555555567
    766666666666667
    777777777777777

Is there any way to improve the code?