  We present an efficient algorithm for computing the partition function of the
q-colouring problem (chromatic polynomial) on regular two-dimensional lattice
strips. Our construction involves writing the transfer matrix as a product of
sparse matrices, each of dimension ~ 3^m, where m is the number of lattice
spacings across the strip. As a specific application, we obtain the large-q
series of the bulk, surface and corner free energies of the chromatic
polynomial. This extends the existing series for the square lattice by 32
terms, to order q^{-79}. On the triangular lattice, we verify Baxter's
analytical expression for the bulk free energy (to order q^{-40}), and we are
able to conjecture exact product formulae for the surface and corner free
energies.
