For Germany, a similar plan for identifiers was used as in UK and it works as follows:
ED (Europe, Deutschland)
The next letter for all the major international airports is always the letter D; the final letter is the initial of the nearest town or suburb - e.g Münster Osnabrück is close to Greven hence the final letter is G, it's full identifier is EDDG. Düsseldorf Airport is close to the suburb of Lohausen so their identifier is EDDL.
The surrounding airports then take the third letter of their identifier from the last letter of the identifier of the closest major international airport so Dortmund is close to Düsseldorf, therefore the third letter is an L; the final letter of the identifier comes from the name of the closest village / suburb (Wickede) W hence Dortmund's identifier is EDLW.
Handy if you know which small village the airfield was built next to, but unfortunately, as with everything in life, there are exceptions....