I bought a USB-1024HLS from Measurement Computing for an experiment with tiny pager motors as a cheap Braille display. For $149 you get a tiny brick with screw terminals. It works great. Their library is easy to use from Python using ctypes. I'm guessing USB timing limits it to 125 updates per second. I've got it blinking LEDs while I'm waiting on the pager motors to arrive.