How do I dynamically create Python unit tests in a readable way?
Don't bother with generating tests:

class Tests(unittest.TestCase):
    def check(self, i, j):
        self.assertNotEquals(0, i-j)

    def test_thingies(self):
        for i in xrange(1, 4):
            for j in xrange(2, 6):
                self.check(i,j)


It would be nicer to generate individual tests, but do you really get that much benefit out of it?

Or write a reusable function:

data = [(i,j) for i in xrange(1,4) for j in xrange(2,6)]
add_data_tests(TestClass, data, 'check')