Boolean operation with script produces error which requires keyboard interrupt
From TLousky: 


  (paraphrased) The variable yy is at the wrong indent level, so it never gets incremented. Thus your inner loop runs until you interrupt it.


Use a print statement within each loop to print out your counters and find out when it's failing.

I suspect that it's failing on the first loop because although bpy.data.objects['Cylinder.005'].select = True selects the object, it neither guarantees that no other objects are also selected, nor does it set the object to active.

Use bpy.context.scene.objects.active = bpy.data.objects["Cube"] to activate the object you want to work on (FYI it might not display correctly in the viewport, even when it's working correctly). Only one object can ever be 'active' at a time, so you can also look in bpy.context.scene.objects.active to find out what (if anything) is already active.

Also use bpy.context.selected_objects check to see if any other objects are selected, to make sure none of them are interfering with your boolean. (I believe there's a method that just deselects everything, so you don't have to write your own loop to set False on every object in the scene).