Nate Silver, of 538 fame, just Tweeted:
Anybody know where I can find a file listing which congressional districts are adjacent to one another?
Seemed like an appropriate request to post here. Any ideas?
I just solved a problem exactly like this with the United States' 2012 Census Block Groups. I used ArcGIS to breakdown the borders to their individual line segments (in other words each line that consists of only two vertices), and captured the line length of each segment of each area. I then transformed the lines into midpoints and did an intersect analysis. This method I found was exponentially faster than near table analysis using the whole polygons. I then selected records that where only Block Group GEOID's from GEOID1 did not match the id in GEOID2.
This took ArcGIS too long so I had to do it in SAS. I then dissolved the records by GEOID1 and GEOID2 and summed the line length. This produces the total length of borders that are shared by GEOID1 and GEOID2. I then compared this length with the total length of the original Block Group. This helped me to solve the question: What percent of Block Group 1's border is shared by Block Group 2's border? And it was for all Block Groups. This also tells you what Block Groups are adjacent to each other.
I realized based on some of the answers provided that I was not including adjacent districts where only one corner from each was touching, so I broke down each district by vertex instead of line midpoint and did a similar analysis. I then joined the first analysis based on line midpoints to the vertex analysis and give a proportion score of zero to any that were not caught in the first analysis (because if only corners touched they do not share a common border, but a corner).
This file includes my analysis. The first column is the State and District number of the reference district; the second column represents the districts adjacent to it; the third column represents what proportion of the reference district's borders are shared with the adjacent district. If the proportion is zero, then they are adjacent by touching corners.
Source of data.
Maybe you are looking for something like this. If you click on an area, you will find information about the polygon.
Jeffrey Lewis has compiled a complete set of geoJSON files for every congressional district through all of time. You should be able to use that to pretty easily figure out adjoining districts. Here's the link to the GitHub repo.