Thanks for the quick response, Jeff.
Someone else prepared the mxd I am working with, which contains two legends and 12 scales bars that had been turned into graphics for detailed customization. I realized that that there were many, many subgroups of the elements within the overall group elements I was trying to control. This was done to assist with the manual relative alignment of the individual elements. I ungrouped everything in the mxd, then recreated only the major element groups. I also reworked the scale bar customization so I could use multiple dynamic bars instead of the graphic bars provided.
This reduced my total list of elements from 264 to 87, which increased the speed of my script. Unfortunately, the script is still incredibly slow. With the mxd I am currently running my script against (when I had 264 elements), ListLayoutElements ran for a couple hours and then my machine's resources were insufficient (I don't remember the exact message, but I believe it was caused by memory problems). In the past, when running my script against a different mxd, this portion of the script was almost instantaneous. The previous mxd had two legends and 12 scale bars as well, all of which contained grouped graphic elements. I am not sure what the difference is between the mxds.
Thanks for the tip about just creating the list of elements once, then subsequently filtering the desired elements. That will greatly increase the speed of my script. Unfortunately, the ListLayoutElements is in multiple functions that I call for a series of projects (sometimes I run 200+ projects at once), so I will still be suffering quite a delay in total script runtime. I could pass the list as an argument, but only within each project iteration, as each project generates its own mxd. I will probably end up passing it between functions within a project, given how much time it would save. It just seems more tedious that being able to create a quick list as needed within a function.
I will keep playing with this, and see if I determine any other differences between the mxds. With ListLayoutElements as my only method of reaching a graphic legend or scale bar, I am not sure what my other options are for decreasing execution time.
Thanks again!
~ April