Some hints to create a list like this:

Way 31981987 [highway=residential, mkgmap:admin_level10=Schönwalde I, mkgmap:admin_level2=DEU, mkgmap:admin_level4=Mecklenburg-Vorpommern, mkgmap:admin_level6=Landkreis Vorpommern-Greifswald, mkgmap:admin_level8=Greifswald, mkgmap:city=Greifswald, mkgmap:country=DEU, mkgmap:postal_code=17491, mkgmap:postcode=17491, mkgmap:region=Mecklenburg-Vorpommern, mkgmap:residential=yes, name=Joliot-Curie-Straße] 
Way 285741470 [highway=service, mkgmap:admin_level2=DEU, mkgmap:admin_level4=Mecklenburg-Vorpommern, mkgmap:admin_level6=Landkreis Vorpommern-Greifswald, mkgmap:admin_level7=Anklam-Land, mkgmap:admin_level8=Neetzow-Liepen, mkgmap:admin_level9=Neetzow, mkgmap:city=Neetzow-Liepen, mkgmap:country=DEU, mkgmap:postal_code=17391, mkgmap:postcode=17391, mkgmap:region=Mecklenburg-Vorpommern, mkgmap:residential=yes, name=Am Schlosspark, oneway=no] 

For mkgmap you need Java 1.8 or later, splitter, mkgmap and bounds.zip
and enough disk space for the list (it will be 1G - 1.5G)

The latter can be downloaded here:
http://www.mkgmap.org.uk/download/mkgmap.html
http://www.mkgmap.org.uk/download/splitter.html

Next, download germany.osm.pbf ,e.g from geofabrik:
http://download.geofabrik.de/europe/germany-latest.osm.pbf

  • Create a directory, e.g. e:\citylist
  • Now, unzip mkgmap and splitter in this directory
  • copy bounds.zip into this directory
  • make sure that Java Runtime 1.8 or later is installed

change to the directory and execute splitter with a command like this:

java -Xmx4G -jar splitter-r591\splitter.jar --output=pbf --max-nodes=2000000 --write-kml=splitter.kml f:\osm\germany-latest.osm.pbf > spliter.log

This will run a few minutes. In the meantime you can create a so called style.
For your purpose this is very simple. The mkgmap package contains an example style called default.
(citylist\mkgmap-r4143\examples\styles\default )
Create a copy of the directory , name it e.g. style_citylist
Change to the directory of the copy, remove these files :
points, polygons ,options, and relations
Next, open the file lines in an editor and replace the content by these two lines:

include 'inc/address'; 
highway=* & name=* & mkgmap:city=* {echotags ""}

The echotags function tells mkgmap to print one line for each way with highway=* and a name tag to stderr.
When splitter has finished its work you should find several files in directory citylist.
Change to that dir and use this command to produce the list:


cd \citylist
java -Xmx6G -jar mkgmap-r4143\mkgmap.jar --style-file=mkgmap-r4143\examples\styles\style_citylist  --bounds=bounds.zip --max-jobs -c template.args 2> citylist.txt

Now, be patient. I suggest to test this with a smaller input, e.g. the file for bremen.
The list contains a lot more tags than needed. I assume you are able to filter what you need.

edit: list size