Random wallpaper from pictures and subfolders

The OS X desktop changer does not follow subfolders in the image source folder. Since SnowLeopard the Screensaver will use the images in subfolders but the Desktop changer will not. As a workaround you can create a folder with links to all images, including images in subfolders (recursively).
In System preferences set the Desktop changer to point to the folder with the links as image source.

Here is a shell script that will create symbolic links (in ~/Desktop/Wallpapers) to all pictures (in ~/Pictures) recursively: wallpaper_links.command

This Python script will show the path to the current image: tkWallpaperCurrent.py