Short answer: don’t bother. Triangle strips were invented for the benefit of graphics hardware that doesn’t have a vertex cache. This includes the original SGI graphics hardware, for instance; and I think it may also include the PS/2 graphics hardware.
However, a vertex cache in the graphics hardware achieves pretty much the same optimization that you would gain from using triangle strips, so any graphics card that uses a vertex cache can render independent triangles almost as fast as it can render triangle strips, especially if the triangles are sent in triangle strip order (that is, triangles with shared vertices should be sent consecutively whenever possible).
As it happens, pretty much any modern PC graphics card includes a vertex cache.
Still, according to NVidia, you can still potentially achieve a small benefit by using triangle strips (though I’ve never actually observed this), so for this reason Panda will automatically generate triangle strips when loading an egg file, when doing so will not otherwise interfere with the batching. (You have to be careful that you don’t increase the number of batches when you generate triangle strips. A big pile of independent triangles can always be sent in one batch, which is optimal. On the other hand, you have to be careful when designing your triangle strips to arrange them so they can be sent as a single batch.)
So, for the academic answer: if you are loading a mesh from an OBJ file, it’s probably best to convert it to egg format first. In fact, this is the way Panda loads any third-party format, even if you load it on-the-fly, and this is exactly why the egg format exists. If you go this route, then Panda will automatically put triangle strips where appropriate.
For real-time generated polygons, if it is easy to make triangle strips (for instance, if you are using a uniform triangulation, with several equal-length strips of triangles), then you might as well do so. But if it’s difficult, don’t bother.
David