Используйте регулярные выражения (http://docs.python.org/library/re.html)?
Не могли бы вы быть более конкретным, я не думаю, что полностью понимаю, чего вы пытаетесь достичь.
EDIT:
Хорошо, теперь я вижу. Это может быть сделано еще проще, но здесь идет:
>>> import re
>>> s = "foo(bar)whatever"
>>> r = re.compile(r"(\()(.+?)(\))")
>>> r.sub(r"\1baz\3",s)
'foo(baz)whatever'
Для нескольких уровней скобок это не сработает, или, скорее, сработает, но сделает то, чего вы, вероятно, не хотите.
О, эй, в качестве бонуса приведено то же регулярное выражение, только теперь оно заменит строку в самых внутренних скобках:
r1 = re.compile(r"(\()([^)^(]+?)(\))")